Package com.ibm.icu.impl.coll
Class CollationRuleParser
- java.lang.Object
-
- com.ibm.icu.impl.coll.CollationRuleParser
-
public final class CollationRuleParser extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interface
CollationRuleParser.Importer
(package private) static class
CollationRuleParser.Position
Special reset positions.(package private) static class
CollationRuleParser.Sink
-
Field Summary
Fields Modifier and Type Field Description private CollationData
baseData
private static java.lang.String
BEFORE
private static java.lang.String[]
gSpecialReorderCodes
private CollationRuleParser.Importer
importer
private Normalizer2
nfc
private Normalizer2
nfd
private static int
OFFSET_SHIFT
(package private) static char
POS_BASE
Base for the second character of contractions that encode special reset positions.(package private) static char
POS_LEAD
First character of contractions that encode special reset positions.(package private) static CollationRuleParser.Position[]
POSITION_VALUES
private static java.lang.String[]
positions
private java.lang.StringBuilder
rawBuilder
private int
ruleIndex
private java.lang.String
rules
private CollationSettings
settings
private CollationRuleParser.Sink
sink
private static int
STARRED_FLAG
private static int
STRENGTH_MASK
UCOL_PRIMARY=0 ..private static int
U_PARSE_CONTEXT_LEN
private static int
UCOL_DEFAULT
private static int
UCOL_OFF
private static int
UCOL_ON
-
Constructor Summary
Constructors Constructor Description CollationRuleParser(CollationData base)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.String
appendErrorContext(java.lang.String reason)
private static int
getOnOffValue(java.lang.String s)
static int
getReorderCode(java.lang.String word)
Gets a script or reorder code from its string representation.private static boolean
isSurrogate(int c)
private static boolean
isSyntaxChar(int c)
ASCII [:P:] and [:S:]: [!-/ :-@ [-` {-~]private java.text.ParseException
makeParseException(java.lang.String reason)
private void
parse(java.lang.String ruleString)
(package private) void
parse(java.lang.String ruleString, CollationSettings outSettings)
private int
parseRelationOperator()
private void
parseRelationStrings(int strength, int i)
private void
parseReordering(java.lang.CharSequence raw)
private int
parseResetAndPosition()
private void
parseRuleChain()
private void
parseSetting()
private int
parseSpecialPosition(int i, java.lang.StringBuilder str)
Sets str to a contraction of U+FFFE and (U+2800 + Position).private void
parseStarredCharacters(int strength, int i)
private int
parseString(int i, java.lang.StringBuilder raw)
private int
parseTailoringString(int i, java.lang.StringBuilder raw)
private int
parseUnicodeSet(int i, UnicodeSet set)
private int
readWords(int i, java.lang.StringBuilder raw)
(package private) void
setImporter(CollationRuleParser.Importer importerAlias)
Sets the pointer to an Importer object.private void
setParseError(java.lang.String reason)
private void
setParseError(java.lang.String reason, java.lang.Exception e)
(package private) void
setSink(CollationRuleParser.Sink sinkAlias)
Sets the pointer to a Sink object.private int
skipComment(int i)
private int
skipWhiteSpace(int i)
-
-
-
Field Detail
-
POSITION_VALUES
static final CollationRuleParser.Position[] POSITION_VALUES
-
POS_LEAD
static final char POS_LEAD
First character of contractions that encode special reset positions. U+FFFE cannot be tailored via rule syntax. The second contraction character is POS_BASE + Position.- See Also:
- Constant Field Values
-
POS_BASE
static final char POS_BASE
Base for the second character of contractions that encode special reset positions. Braille characters U+28xx are printable and normalization-inert.- See Also:
POS_LEAD
, Constant Field Values
-
UCOL_DEFAULT
private static final int UCOL_DEFAULT
- See Also:
- Constant Field Values
-
UCOL_OFF
private static final int UCOL_OFF
- See Also:
- Constant Field Values
-
UCOL_ON
private static final int UCOL_ON
- See Also:
- Constant Field Values
-
STRENGTH_MASK
private static final int STRENGTH_MASK
UCOL_PRIMARY=0 .. UCOL_IDENTICAL=15- See Also:
- Constant Field Values
-
STARRED_FLAG
private static final int STARRED_FLAG
- See Also:
- Constant Field Values
-
OFFSET_SHIFT
private static final int OFFSET_SHIFT
- See Also:
- Constant Field Values
-
BEFORE
private static final java.lang.String BEFORE
- See Also:
- Constant Field Values
-
rawBuilder
private final java.lang.StringBuilder rawBuilder
-
positions
private static final java.lang.String[] positions
-
gSpecialReorderCodes
private static final java.lang.String[] gSpecialReorderCodes
-
U_PARSE_CONTEXT_LEN
private static final int U_PARSE_CONTEXT_LEN
- See Also:
- Constant Field Values
-
nfd
private Normalizer2 nfd
-
nfc
private Normalizer2 nfc
-
rules
private java.lang.String rules
-
baseData
private final CollationData baseData
-
settings
private CollationSettings settings
-
sink
private CollationRuleParser.Sink sink
-
importer
private CollationRuleParser.Importer importer
-
ruleIndex
private int ruleIndex
-
-
Constructor Detail
-
CollationRuleParser
CollationRuleParser(CollationData base)
Constructor. The Sink must be set before parsing. The Importer can be set, otherwise [import locale] syntax is not supported.
-
-
Method Detail
-
setSink
void setSink(CollationRuleParser.Sink sinkAlias)
Sets the pointer to a Sink object. The pointer is aliased: Pointer copy without cloning or taking ownership.
-
setImporter
void setImporter(CollationRuleParser.Importer importerAlias)
Sets the pointer to an Importer object. The pointer is aliased: Pointer copy without cloning or taking ownership.
-
parse
void parse(java.lang.String ruleString, CollationSettings outSettings) throws java.text.ParseException
- Throws:
java.text.ParseException
-
parse
private void parse(java.lang.String ruleString) throws java.text.ParseException
- Throws:
java.text.ParseException
-
parseRuleChain
private void parseRuleChain() throws java.text.ParseException
- Throws:
java.text.ParseException
-
parseResetAndPosition
private int parseResetAndPosition() throws java.text.ParseException
- Throws:
java.text.ParseException
-
parseRelationOperator
private int parseRelationOperator()
-
parseRelationStrings
private void parseRelationStrings(int strength, int i) throws java.text.ParseException
- Throws:
java.text.ParseException
-
parseStarredCharacters
private void parseStarredCharacters(int strength, int i) throws java.text.ParseException
- Throws:
java.text.ParseException
-
parseTailoringString
private int parseTailoringString(int i, java.lang.StringBuilder raw) throws java.text.ParseException
- Throws:
java.text.ParseException
-
parseString
private int parseString(int i, java.lang.StringBuilder raw) throws java.text.ParseException
- Throws:
java.text.ParseException
-
isSurrogate
private static final boolean isSurrogate(int c)
-
parseSpecialPosition
private int parseSpecialPosition(int i, java.lang.StringBuilder str) throws java.text.ParseException
Sets str to a contraction of U+FFFE and (U+2800 + Position).- Returns:
- rule index after the special reset position
- Throws:
java.text.ParseException
-
parseSetting
private void parseSetting() throws java.text.ParseException
- Throws:
java.text.ParseException
-
parseReordering
private void parseReordering(java.lang.CharSequence raw) throws java.text.ParseException
- Throws:
java.text.ParseException
-
getReorderCode
public static int getReorderCode(java.lang.String word)
Gets a script or reorder code from its string representation.- Returns:
- the script/reorder code, or -1 if not recognized
-
getOnOffValue
private static int getOnOffValue(java.lang.String s)
-
parseUnicodeSet
private int parseUnicodeSet(int i, UnicodeSet set) throws java.text.ParseException
- Throws:
java.text.ParseException
-
readWords
private int readWords(int i, java.lang.StringBuilder raw)
-
skipComment
private int skipComment(int i)
-
setParseError
private void setParseError(java.lang.String reason) throws java.text.ParseException
- Throws:
java.text.ParseException
-
setParseError
private void setParseError(java.lang.String reason, java.lang.Exception e) throws java.text.ParseException
- Throws:
java.text.ParseException
-
makeParseException
private java.text.ParseException makeParseException(java.lang.String reason)
-
appendErrorContext
private java.lang.String appendErrorContext(java.lang.String reason)
-
isSyntaxChar
private static boolean isSyntaxChar(int c)
ASCII [:P:] and [:S:]: [!-/ :-@ [-` {-~]
-
skipWhiteSpace
private int skipWhiteSpace(int i)
-
-