Package com.ibm.icu.impl.coll
Class CollationDataBuilder
- java.lang.Object
-
- com.ibm.icu.impl.coll.CollationDataBuilder
-
final class CollationDataBuilder extends java.lang.Object
Low-level CollationData builder. Takes (character, CE) pairs and builds them into runtime data structures. Supports characters with context prefixes and contraction suffixes.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interface
CollationDataBuilder.CEModifier
Collation element modifier.private static class
CollationDataBuilder.ConditionalCE32
Build-time context and CE32 for a code point.private static class
CollationDataBuilder.CopyHelper
private static class
CollationDataBuilder.DataBuilderCollationIterator
Build-time collation element and character iterator.
-
Field Summary
Fields Modifier and Type Field Description protected CollationData
base
protected CollationSettings
baseSettings
protected UVector32
ce32s
protected UVector64
ce64s
protected CollationDataBuilder.DataBuilderCollationIterator
collIter
protected java.util.ArrayList<CollationDataBuilder.ConditionalCE32>
conditionalCE32s
protected UnicodeSet
contextChars
protected java.lang.StringBuilder
contexts
private int
contextsEra
The "era" of building intermediate contexts.protected CollationFastLatinBuilder
fastLatinBuilder
protected boolean
fastLatinEnabled
private static int
IS_BUILDER_JAMO_CE32
protected boolean
modified
protected Normalizer2Impl
nfcImpl
protected Trie2Writable
trie
protected UnicodeSet
unsafeBackwardSet
-
Constructor Summary
Constructors Constructor Description CollationDataBuilder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
add(java.lang.CharSequence prefix, java.lang.CharSequence s, long[] ces, int cesLength)
protected int
addCE(long ce)
protected int
addCE32(int ce32)
(package private) void
addCE32(java.lang.CharSequence prefix, java.lang.CharSequence s, int ce32)
protected int
addConditionalCE32(java.lang.String context, int ce32)
protected int
addContextTrie(int defaultCE32, CharsTrieBuilder trieBuilder)
(package private) void
build(CollationData data)
protected int
buildContext(CollationDataBuilder.ConditionalCE32 head)
protected void
buildContexts()
protected void
buildFastLatinTable(CollationData data)
protected void
buildMappings(CollationData data)
protected void
clearContexts()
protected int
copyContractionsFromBaseCE32(java.lang.StringBuilder context, int c, int ce32, CollationDataBuilder.ConditionalCE32 cond)
Copies base contractions to a list of ConditionalCE32.(package private) void
copyFrom(CollationDataBuilder src, CollationDataBuilder.CEModifier modifier)
Copies all mappings from the src builder, with modifications.protected int
copyFromBaseCE32(int c, int ce32, boolean withContext)
(package private) void
enableFastLatin()
(package private) int
encodeCEs(long[] ces, int cesLength)
Encodes the ces as either the returned ce32 by itself, or by storing an expansion, with the returned ce32 referring to that.protected int
encodeExpansion(long[] ces, int start, int length)
protected int
encodeExpansion32(int[] newCE32s, int start, int length)
protected int
encodeOneCE(long ce)
protected static int
encodeOneCEAsCE32(long ce)
private static void
enumRangeForCopy(int start, int end, int value, CollationDataBuilder.CopyHelper helper)
protected int
getCE32FromOffsetCE32(boolean fromBase, int c, int ce32)
protected int
getCEs(java.lang.CharSequence s, int start, long[] ces, int cesLength)
(package private) int
getCEs(java.lang.CharSequence s, long[] ces, int cesLength)
Looks up CEs for s and appends them to the ces array.(package private) int
getCEs(java.lang.CharSequence prefix, java.lang.CharSequence s, long[] ces, int cesLength)
protected CollationDataBuilder.ConditionalCE32
getConditionalCE32(int index)
protected CollationDataBuilder.ConditionalCE32
getConditionalCE32ForCE32(int ce32)
protected boolean
getJamoCE32s(int[] jamoCE32s)
(package private) boolean
hasMappings()
(package private) void
initForTailoring(CollationData b)
(package private) boolean
isAssigned(int c)
protected static boolean
isBuilderContextCE32(int ce32)
(package private) boolean
isCompressibleLeadByte(int b)
(package private) boolean
isCompressiblePrimary(long p)
protected boolean
isMutable()
protected static int
jamoCpFromIndex(int i)
protected static int
makeBuilderContextCE32(int index)
(package private) void
optimize(UnicodeSet set)
protected void
setDigitTags()
protected void
setLeadSurrogates()
(package private) void
suppressContractions(UnicodeSet set)
-
-
-
Field Detail
-
IS_BUILDER_JAMO_CE32
private static final int IS_BUILDER_JAMO_CE32
- See Also:
Collation.BUILDER_DATA_TAG
, Constant Field Values
-
nfcImpl
protected Normalizer2Impl nfcImpl
-
base
protected CollationData base
-
baseSettings
protected CollationSettings baseSettings
-
trie
protected Trie2Writable trie
-
ce32s
protected UVector32 ce32s
-
ce64s
protected UVector64 ce64s
-
conditionalCE32s
protected java.util.ArrayList<CollationDataBuilder.ConditionalCE32> conditionalCE32s
-
contextChars
protected UnicodeSet contextChars
-
contexts
protected java.lang.StringBuilder contexts
-
contextsEra
private int contextsEra
The "era" of building intermediate contexts. When the array of cached, temporary contexts overflows, then clearContexts() removes them all and invalidates the builtCE32 that used to point to built tries. SeeCollationDataBuilder.ConditionalCE32.era
.
-
unsafeBackwardSet
protected UnicodeSet unsafeBackwardSet
-
modified
protected boolean modified
-
fastLatinEnabled
protected boolean fastLatinEnabled
-
fastLatinBuilder
protected CollationFastLatinBuilder fastLatinBuilder
-
collIter
protected CollationDataBuilder.DataBuilderCollationIterator collIter
-
-
Method Detail
-
initForTailoring
void initForTailoring(CollationData b)
-
isCompressibleLeadByte
boolean isCompressibleLeadByte(int b)
-
isCompressiblePrimary
boolean isCompressiblePrimary(long p)
-
hasMappings
boolean hasMappings()
- Returns:
- true if this builder has mappings (e.g., add() has been called)
-
isAssigned
boolean isAssigned(int c)
- Returns:
- true if c has CEs in this builder
-
add
void add(java.lang.CharSequence prefix, java.lang.CharSequence s, long[] ces, int cesLength)
-
encodeCEs
int encodeCEs(long[] ces, int cesLength)
Encodes the ces as either the returned ce32 by itself, or by storing an expansion, with the returned ce32 referring to that.add(p, s, ces, cesLength) = addCE32(p, s, encodeCEs(ces, cesLength))
-
addCE32
void addCE32(java.lang.CharSequence prefix, java.lang.CharSequence s, int ce32)
-
copyFrom
void copyFrom(CollationDataBuilder src, CollationDataBuilder.CEModifier modifier)
Copies all mappings from the src builder, with modifications. This builder here must not be built yet, and should be empty.
-
optimize
void optimize(UnicodeSet set)
-
suppressContractions
void suppressContractions(UnicodeSet set)
-
enableFastLatin
void enableFastLatin()
-
build
void build(CollationData data)
-
getCEs
int getCEs(java.lang.CharSequence s, long[] ces, int cesLength)
Looks up CEs for s and appends them to the ces array. Does not handle normalization: s should be in FCD form. Does not write completely ignorable CEs. Does not write beyond Collation.MAX_EXPANSION_LENGTH.- Returns:
- incremented cesLength
-
getCEs
int getCEs(java.lang.CharSequence prefix, java.lang.CharSequence s, long[] ces, int cesLength)
-
getCE32FromOffsetCE32
protected int getCE32FromOffsetCE32(boolean fromBase, int c, int ce32)
-
addCE
protected int addCE(long ce)
-
addCE32
protected int addCE32(int ce32)
-
addConditionalCE32
protected int addConditionalCE32(java.lang.String context, int ce32)
-
getConditionalCE32
protected CollationDataBuilder.ConditionalCE32 getConditionalCE32(int index)
-
getConditionalCE32ForCE32
protected CollationDataBuilder.ConditionalCE32 getConditionalCE32ForCE32(int ce32)
-
makeBuilderContextCE32
protected static int makeBuilderContextCE32(int index)
-
isBuilderContextCE32
protected static boolean isBuilderContextCE32(int ce32)
-
encodeOneCEAsCE32
protected static int encodeOneCEAsCE32(long ce)
-
encodeOneCE
protected int encodeOneCE(long ce)
-
encodeExpansion
protected int encodeExpansion(long[] ces, int start, int length)
-
encodeExpansion32
protected int encodeExpansion32(int[] newCE32s, int start, int length)
-
copyFromBaseCE32
protected int copyFromBaseCE32(int c, int ce32, boolean withContext)
-
copyContractionsFromBaseCE32
protected int copyContractionsFromBaseCE32(java.lang.StringBuilder context, int c, int ce32, CollationDataBuilder.ConditionalCE32 cond)
Copies base contractions to a list of ConditionalCE32. Sets cond.next to the index of the first new item and returns the index of the last new item.
-
enumRangeForCopy
private static void enumRangeForCopy(int start, int end, int value, CollationDataBuilder.CopyHelper helper)
-
getJamoCE32s
protected boolean getJamoCE32s(int[] jamoCE32s)
-
setDigitTags
protected void setDigitTags()
-
setLeadSurrogates
protected void setLeadSurrogates()
-
buildMappings
protected void buildMappings(CollationData data)
-
clearContexts
protected void clearContexts()
-
buildContexts
protected void buildContexts()
-
buildContext
protected int buildContext(CollationDataBuilder.ConditionalCE32 head)
-
addContextTrie
protected int addContextTrie(int defaultCE32, CharsTrieBuilder trieBuilder)
-
buildFastLatinTable
protected void buildFastLatinTable(CollationData data)
-
getCEs
protected int getCEs(java.lang.CharSequence s, int start, long[] ces, int cesLength)
-
jamoCpFromIndex
protected static int jamoCpFromIndex(int i)
-
isMutable
protected final boolean isMutable()
-
-