java.awt.font
Class NumericShaper
public final
class
NumericShaper
extends Object
implements Serializable
This class handles numeric shaping. A shaper can either be contextual
or not. A non-contextual shaper will always translate ASCII digits
in its input into the target Unicode range. A contextual shaper will
change the target Unicode range depending on the characters it has
previously processed.
Since: 1.4
UNKNOWN: This class does not handle LIMBU or OSMANYA. The JDK does not seem to properly handle ranges without a
digit zero, such as TAMIL. This implementation does.
Field Summary |
static int | ALL_RANGES Convenience constant representing all the valid Unicode ranges. |
static int | ARABIC
Constant representing the Unicode ARABIC range. |
static int | BENGALI Constant representing the Unicode BENGALI range. |
static int | DEVANAGARI Constant representing the Unicode DEVANAGARI range. |
static int | EASTERN_ARABIC
Constant representing the Unicode extended arabic range.
|
static int | ETHIOPIC
Constant representing the Unicode ETHIOPIC range. |
static int | EUROPEAN
Constant representing the Unicode EUROPEAN range. |
static int | GUJARATI Constant representing the Unicode GUJARATI range. |
static int | GURMUKHI Constant representing the Unicode GURMUKHI range. |
static int | KANNADA Constant representing the Unicode KANNADA range. |
static int | KHMER Constant representing the Unicode KHMER range. |
static int | LAO Constant representing the Unicode LAO range. |
static int | MALAYALAM Constant representing the Unicode MALAYALAM range. |
static int | MONGOLIAN Constant representing the Unicode MONGOLIAN range. |
static int | MYANMAR Constant representing the Unicode MYANMAR range. |
static int | ORIYA Constant representing the Unicode ORIYA range. |
static int | TAMIL
Constant representing the Unicode TAMIL range. |
static int | TELUGU Constant representing the Unicode TELUGU range. |
static int | THAI Constant representing the Unicode THAI range. |
static int | TIBETAN Constant representing the Unicode TIBETAN range. |
Method Summary |
boolean | equals(Object obj) |
static NumericShaper | getContextualShaper(int ranges)
Return a contextual shaper which can shape to any of the indicated
languages. |
static NumericShaper | getContextualShaper(int ranges, int defaultContext)
Return a contextual shaper which can shape to any of the indicated
languages. |
int | getRanges()
Return an integer representing all the languages for which this
shaper will shape. |
static NumericShaper | getShaper(int singleRange)
Return a non-contextual shaper which can shape to a single range.
|
int | hashCode() |
boolean | isContextual()
Return true if this shaper is contextual, false if it is not. |
void | shape(char[] text, int start, int count)
Shape the text in the given array. |
void | shape(char[] text, int start, int count, int context)
Shape the given text, using the indicated initial context.
|
String | toString() |
public static final int ALL_RANGES
Convenience constant representing all the valid Unicode ranges.
public static final int ARABIC
Constant representing the Unicode ARABIC range. Shaping done
using this range will translate to the arabic decimal characters.
Use EASTERN_ARABIC if you want to shape to the eastern arabic
(also known as the extended arabic) decimal characters.
public static final int BENGALI
Constant representing the Unicode BENGALI range.
public static final int DEVANAGARI
Constant representing the Unicode DEVANAGARI range.
public static final int EASTERN_ARABIC
Constant representing the Unicode extended arabic range.
In Unicode there are two different sets of arabic digits;
this selects the extended or eastern set.
public static final int ETHIOPIC
Constant representing the Unicode ETHIOPIC range. Note that
there is no digit zero in this range; an ASCII digit zero
is left unchanged when shaping to this range.
public static final int EUROPEAN
Constant representing the Unicode EUROPEAN range. For
contextual shaping purposes, characters in the various
extended Latin character blocks are recognized as EUROPEAN.
public static final int GUJARATI
Constant representing the Unicode GUJARATI range.
public static final int GURMUKHI
Constant representing the Unicode GURMUKHI range.
public static final int KANNADA
Constant representing the Unicode KANNADA range.
public static final int KHMER
Constant representing the Unicode KHMER range.
public static final int LAO
Constant representing the Unicode LAO range.
public static final int MALAYALAM
Constant representing the Unicode MALAYALAM range.
public static final int MONGOLIAN
Constant representing the Unicode MONGOLIAN range.
public static final int MYANMAR
Constant representing the Unicode MYANMAR range.
public static final int ORIYA
Constant representing the Unicode ORIYA range.
public static final int TAMIL
Constant representing the Unicode TAMIL range. Note that
there is no digit zero in this range; an ASCII digit zero
is left unchanged when shaping to this range.
public static final int TELUGU
Constant representing the Unicode TELUGU range.
public static final int THAI
Constant representing the Unicode THAI range.
public static final int TIBETAN
Constant representing the Unicode TIBETAN range.
public boolean equals(
Object obj)
Return a contextual shaper which can shape to any of the indicated
languages. The default initial context for this shaper is EUROPEAN.
Parameters: ranges the ranges to shape to
Returns: a contextual shaper which will target any of these ranges
Throws: IllegalArgumentException if the argument specifies an
unrecognized range
public static
NumericShaper getContextualShaper(int ranges, int defaultContext)
Return a contextual shaper which can shape to any of the indicated
languages. The default initial context for this shaper is given as
an argument.
Parameters: ranges the ranges to shape to defaultContext the default initial context
Returns: a contextual shaper which will target any of these ranges
Throws: IllegalArgumentException if the ranges argument specifies an
unrecognized range, or if the defaultContext argument does not specify
a single valid range
public int getRanges()
Return an integer representing all the languages for which this
shaper will shape. The result is taken by "or"ing together
the constants representing the various languages.
Return a non-contextual shaper which can shape to a single range.
All ASCII digits in the input text are translated to this language.
Parameters: singleRange the target language
Returns: a non-contextual shaper for this language
Throws: IllegalArgumentException if the argument does not name a
single language, as specified by the constants declared in this class
public int hashCode()
public boolean isContextual()
Return true if this shaper is contextual, false if it is not.
public void shape(char[] text, int start, int count)
Shape the text in the given array. The starting context will
be the context passed to the shaper at creation time.
Parameters: text the text to shape start the index of the starting character of the array count the number of characters in the array
public void shape(char[] text, int start, int count, int context)
Shape the given text, using the indicated initial context.
If this shaper is not a contextual shaper, then the given context
will be ignored.
Parameters: text the text to shape start the index of the first character of the text to shape count the number of characters to shape in the text context the initial context
Throws: IllegalArgumentException if the initial context is invalid