Package com.ibm.icu.impl.coll
Class CollationSettings
java.lang.Object
com.ibm.icu.impl.coll.SharedObject
com.ibm.icu.impl.coll.CollationSettings
- All Implemented Interfaces:
Cloneable
Collation settings/options/attributes.
These are the values that can be changed via API.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.ibm.icu.impl.coll.SharedObject
SharedObject.Reference<T extends SharedObject> -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final intOptions bits 3..2: Alternate-handling mask.static final intOptions bit 11: Compare secondary weights backwards.static final intOptions bit 9: Keep the case bits in the tertiary weight (they trump other tertiary values) unless case level is on (when they are *moved* into the separate case level).static final intOptions bit mask for caseFirst and upperFirst, before shifting.static final intOptions bit 10: Insert the case level between the secondary and tertiary levels.static final intOptions bit 0: Perform the FCD check on the input text and deliver normalized text.private static final int[]intOptions for CollationFastLatin.char[](package private) static final int(package private) static final int(package private) static final intmaxVariable values(package private) static final int(package private) static final intmaxVariable options bit mask before shifting.(package private) static final intOptions bits 6..4: The 3-bit maxVariable value bit field is shifted by this value.(package private) longLimit of last reordered range.static final intOptions bit 1: Numeric collation.intCHECK_FCD etc.int[]Array of reorder codes; ignored if length == 0.(package private) long[]Primary-weight ranges for script reordering, to be used by reorder(p) for split-reordered primary lead bytes.byte[]256-byte table for reordering permutation of primary lead bytes; null if no reordering.(package private) static final int"Shifted" alternate handling, see ALTERNATE_MASK.(package private) static final intStrength options bit mask before shifting.(package private) static final intOptions bits 15..12: The 4-bit strength value bit field is shifted by this value.(package private) static final intOptions bit 8: Sort uppercase first if caseLevel or caseFirst is on.longVariable-top primary weight. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) voidaliasReordering(CollationData data, int[] codesAndRanges, int codesLength, byte[] table) clone()Initializes refCount to 0.voidbooleanbooleanbooleanintbooleangetFlag(int bit) intint(package private) static intgetStrength(int options) (package private) static intgetTertiaryMask(int options) (package private) booleaninthashCode()booleanboolean(package private) static booleanisTertiaryWithCaseBits(int options) Include case bits in the tertiary level if caseLevel=off and caseFirst!=off.longreorder(long p) private longreorderEx(long p) private static booleanreorderTableHasSplitBytes(byte[] table) voidvoidsetAlternateHandlingDefault(int defaultOptions) voidsetAlternateHandlingShifted(boolean value) voidsetCaseFirst(int value) voidsetCaseFirstDefault(int defaultOptions) voidsetFlag(int bit, boolean value) Sets the options bit for an on/off attribute.voidsetFlagDefault(int bit, int defaultOptions) voidsetMaxVariable(int value, int defaultOptions) private voidsetReorderArrays(int[] codes, int[] ranges, int rangesStart, int rangesLength, byte[] table) voidsetReordering(CollationData data, int[] codes) private voidsetReorderRanges(int[] ranges, int rangesStart, int rangesLength) voidsetStrength(int value) voidsetStrengthDefault(int defaultOptions) (package private) static booleansortsTertiaryUpperCaseFirst(int options) Methods inherited from class com.ibm.icu.impl.coll.SharedObject
addRef, deleteIfZeroRefCount, getRefCount, removeRef
-
Field Details
-
CHECK_FCD
public static final int CHECK_FCDOptions bit 0: Perform the FCD check on the input text and deliver normalized text.- See Also:
-
NUMERIC
public static final int NUMERICOptions bit 1: Numeric collation. Also known as CODAN = COllate Digits As Numbers. Treat digit sequences as numbers with CE sequences in numeric order, rather than returning a normal CE for each digit.- See Also:
-
SHIFTED
static final int SHIFTED"Shifted" alternate handling, see ALTERNATE_MASK.- See Also:
-
ALTERNATE_MASK
static final int ALTERNATE_MASKOptions bits 3..2: Alternate-handling mask. 0 for non-ignorable. Reserve values 8 and 0xc for shift-trimmed and blanked.- See Also:
-
MAX_VARIABLE_SHIFT
static final int MAX_VARIABLE_SHIFTOptions bits 6..4: The 3-bit maxVariable value bit field is shifted by this value.- See Also:
-
MAX_VARIABLE_MASK
static final int MAX_VARIABLE_MASKmaxVariable options bit mask before shifting.- See Also:
-
UPPER_FIRST
static final int UPPER_FIRSTOptions bit 8: Sort uppercase first if caseLevel or caseFirst is on.- See Also:
-
CASE_FIRST
public static final int CASE_FIRSTOptions bit 9: Keep the case bits in the tertiary weight (they trump other tertiary values) unless case level is on (when they are *moved* into the separate case level). By default, the case bits are removed from the tertiary weight (ignored). When CASE_FIRST is off, UPPER_FIRST must be off too, corresponding to the tri-value UCOL_CASE_FIRST attribute: UCOL_OFF vs. UCOL_LOWER_FIRST vs. UCOL_UPPER_FIRST.- See Also:
-
CASE_FIRST_AND_UPPER_MASK
public static final int CASE_FIRST_AND_UPPER_MASKOptions bit mask for caseFirst and upperFirst, before shifting. Same value as caseFirst==upperFirst.- See Also:
-
CASE_LEVEL
public static final int CASE_LEVELOptions bit 10: Insert the case level between the secondary and tertiary levels.- See Also:
-
BACKWARD_SECONDARY
public static final int BACKWARD_SECONDARYOptions bit 11: Compare secondary weights backwards. ("French secondary")- See Also:
-
STRENGTH_SHIFT
static final int STRENGTH_SHIFTOptions bits 15..12: The 4-bit strength value bit field is shifted by this value. It is the top used bit field in the options. (No need to mask after shifting.)- See Also:
-
STRENGTH_MASK
static final int STRENGTH_MASKStrength options bit mask before shifting.- See Also:
-
MAX_VAR_SPACE
static final int MAX_VAR_SPACEmaxVariable values- See Also:
-
MAX_VAR_PUNCT
static final int MAX_VAR_PUNCT- See Also:
-
MAX_VAR_SYMBOL
static final int MAX_VAR_SYMBOL- See Also:
-
MAX_VAR_CURRENCY
static final int MAX_VAR_CURRENCY- See Also:
-
options
public int optionsCHECK_FCD etc. -
variableTop
public long variableTopVariable-top primary weight. -
reorderTable
public byte[] reorderTable256-byte table for reordering permutation of primary lead bytes; null if no reordering. A 0 entry at a non-zero index means that the primary lead byte is "split" (there are different offsets for primaries that share that lead byte) and the reordering offset must be determined via the reorderRanges. -
minHighNoReorder
long minHighNoReorderLimit of last reordered range. 0 if no reordering or no split bytes. -
reorderRanges
long[] reorderRangesPrimary-weight ranges for script reordering, to be used by reorder(p) for split-reordered primary lead bytes.Each entry is a (limit, offset) pair. The upper 16 bits of the entry are the upper 16 bits of the exclusive primary limit of a range. Primaries between the previous limit and this one have their lead bytes modified by the signed offset (-0xff..+0xff) stored in the lower 16 bits.
CollationData.makeReorderRanges() writes a full list where the first range (at least for terminators and separators) has a 0 offset. The last range has a non-zero offset. minHighNoReorder is set to the limit of that last range.
In the settings object, the initial ranges before the first split lead byte are omitted for efficiency; they are handled by reorder(p) via the reorderTable. If there are no split-reordered lead bytes, then no ranges are needed.
-
reorderCodes
public int[] reorderCodesArray of reorder codes; ignored if length == 0. -
EMPTY_INT_ARRAY
private static final int[] EMPTY_INT_ARRAY -
fastLatinOptions
public int fastLatinOptionsOptions for CollationFastLatin. Negative if disabled. -
fastLatinPrimaries
public char[] fastLatinPrimaries
-
-
Constructor Details
-
CollationSettings
CollationSettings()
-
-
Method Details
-
clone
Description copied from class:SharedObjectInitializes refCount to 0.- Overrides:
clonein classSharedObject
-
equals
-
hashCode
public int hashCode() -
resetReordering
public void resetReordering() -
aliasReordering
-
setReordering
-
setReorderArrays
private void setReorderArrays(int[] codes, int[] ranges, int rangesStart, int rangesLength, byte[] table) -
setReorderRanges
private void setReorderRanges(int[] ranges, int rangesStart, int rangesLength) -
copyReorderingFrom
-
hasReordering
public boolean hasReordering() -
reorderTableHasSplitBytes
private static boolean reorderTableHasSplitBytes(byte[] table) -
reorder
public long reorder(long p) -
reorderEx
private long reorderEx(long p) -
setStrength
public void setStrength(int value) -
setStrengthDefault
public void setStrengthDefault(int defaultOptions) -
getStrength
static int getStrength(int options) -
getStrength
public int getStrength() -
setFlag
public void setFlag(int bit, boolean value) Sets the options bit for an on/off attribute. -
setFlagDefault
public void setFlagDefault(int bit, int defaultOptions) -
getFlag
public boolean getFlag(int bit) -
setCaseFirst
public void setCaseFirst(int value) -
setCaseFirstDefault
public void setCaseFirstDefault(int defaultOptions) -
getCaseFirst
public int getCaseFirst() -
setAlternateHandlingShifted
public void setAlternateHandlingShifted(boolean value) -
setAlternateHandlingDefault
public void setAlternateHandlingDefault(int defaultOptions) -
getAlternateHandling
public boolean getAlternateHandling() -
setMaxVariable
public void setMaxVariable(int value, int defaultOptions) -
getMaxVariable
public int getMaxVariable() -
isTertiaryWithCaseBits
static boolean isTertiaryWithCaseBits(int options) Include case bits in the tertiary level if caseLevel=off and caseFirst!=off. -
getTertiaryMask
static int getTertiaryMask(int options) -
sortsTertiaryUpperCaseFirst
static boolean sortsTertiaryUpperCaseFirst(int options) -
dontCheckFCD
public boolean dontCheckFCD() -
hasBackwardSecondary
boolean hasBackwardSecondary() -
isNumeric
public boolean isNumeric()
-