Class LocaleDistance
java.lang.Object
com.ibm.icu.impl.locale.LocaleDistance
Offline-built data for LocaleMatcher.
Mostly but not only the data for mapping locales to their maximized forms.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final intprivate static final booleanprivate final intprivate final intprivate final intprivate final intprivate static final intprivate static final intprivate static final intDistance value bit flag, set by trieNext().private static final intprivate static final intprivate static final intstatic final intDistance value bit flag, set by the builder.static final intBit flag used on the last character of a subtag in the trie.private static final intprivate static final intstatic final LocaleDistancestatic final intstatic final intstatic final intstatic final intstatic final intprivate final intUsed to get the paradigm region for a cluster, if there is one.private final String[]private final byte[]Maps each region to zero or more single-character partitions.private final BytesTrie -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintgetBestIndexAndDistance(LSR desired, LSR[] supportedLSRs, int supportedLSRsLength, int shiftedThreshold, LocaleMatcher.FavorSubtag favorSubtag, LocaleMatcher.Direction direction) Finds the supported LSR with the smallest distance from the desired one.int(package private) intintprivate static final intgetDesSuppScriptDistance(BytesTrie iter, long startState, String desired, String supported) static final doublegetDistanceDouble(int indexAndDistance) static final intgetDistanceFloor(int indexAndDistance) private static final intgetFallbackRegionDistance(BytesTrie iter, long startState) static final intgetIndex(int indexAndDistance) private static final intgetRegionPartitionsDistance(BytesTrie iter, long startState, String desiredPartitions, String supportedPartitions, int threshold) static final intgetShiftedDistance(int indexAndDistance) private booleanisMatch(LSR desired, LSR supported, int shiftedThreshold, LocaleMatcher.FavorSubtag favorSubtag) booleanisParadigmLSR(LSR lsr) private StringpartitionsForRegion(LSR lsr) static final intshiftDistance(int distance) inttestOnlyDistance(ULocale desired, ULocale supported, int threshold, LocaleMatcher.FavorSubtag favorSubtag) voidtoString()private static final int
-
Field Details
-
END_OF_SUBTAG
public static final int END_OF_SUBTAGBit flag used on the last character of a subtag in the trie. Must be set consistently by the builder and the lookup code.- See Also:
-
DISTANCE_SKIP_SCRIPT
public static final int DISTANCE_SKIP_SCRIPTDistance value bit flag, set by the builder.- See Also:
-
DISTANCE_IS_FINAL
private static final int DISTANCE_IS_FINALDistance value bit flag, set by trieNext().- See Also:
-
DISTANCE_IS_FINAL_OR_SKIP_SCRIPT
private static final int DISTANCE_IS_FINAL_OR_SKIP_SCRIPT- See Also:
-
DISTANCE_SHIFT
private static final int DISTANCE_SHIFT- See Also:
-
DISTANCE_FRACTION_MASK
private static final int DISTANCE_FRACTION_MASK- See Also:
-
DISTANCE_INT_SHIFT
private static final int DISTANCE_INT_SHIFT- See Also:
-
INDEX_SHIFT
private static final int INDEX_SHIFT- See Also:
-
DISTANCE_MASK
private static final int DISTANCE_MASK- See Also:
-
INDEX_NEG_1
private static final int INDEX_NEG_1- See Also:
-
IX_DEF_LANG_DISTANCE
public static final int IX_DEF_LANG_DISTANCE- See Also:
-
IX_DEF_SCRIPT_DISTANCE
public static final int IX_DEF_SCRIPT_DISTANCE- See Also:
-
IX_DEF_REGION_DISTANCE
public static final int IX_DEF_REGION_DISTANCE- See Also:
-
IX_MIN_REGION_DISTANCE
public static final int IX_MIN_REGION_DISTANCE- See Also:
-
IX_LIMIT
public static final int IX_LIMIT- See Also:
-
ABOVE_THRESHOLD
private static final int ABOVE_THRESHOLD- See Also:
-
DEBUG_OUTPUT
private static final boolean DEBUG_OUTPUT- See Also:
-
trie
-
regionToPartitionsIndex
private final byte[] regionToPartitionsIndexMaps each region to zero or more single-character partitions. -
partitionArrays
-
paradigmLSRs
-
defaultLanguageDistance
private final int defaultLanguageDistance -
defaultScriptDistance
private final int defaultScriptDistance -
defaultRegionDistance
private final int defaultRegionDistance -
minRegionDistance
private final int minRegionDistance -
defaultDemotionPerDesiredLocale
private final int defaultDemotionPerDesiredLocale -
INSTANCE
-
-
Constructor Details
-
LocaleDistance
-
-
Method Details
-
shiftDistance
public static final int shiftDistance(int distance) -
getShiftedDistance
public static final int getShiftedDistance(int indexAndDistance) -
getDistanceDouble
public static final double getDistanceDouble(int indexAndDistance) -
getDistanceFloor
public static final int getDistanceFloor(int indexAndDistance) -
getIndex
public static final int getIndex(int indexAndDistance) -
testOnlyDistance
public int testOnlyDistance(ULocale desired, ULocale supported, int threshold, LocaleMatcher.FavorSubtag favorSubtag) -
getBestIndexAndDistance
public int getBestIndexAndDistance(LSR desired, LSR[] supportedLSRs, int supportedLSRsLength, int shiftedThreshold, LocaleMatcher.FavorSubtag favorSubtag, LocaleMatcher.Direction direction) Finds the supported LSR with the smallest distance from the desired one. Equivalent LSR subtags must be normalized into a canonical form.Returns the index of the lowest-distance supported LSR in the high bits (negative if none has a distance below the threshold), and its distance (0..ABOVE_THRESHOLD) in the low bits.
-
isMatch
private boolean isMatch(LSR desired, LSR supported, int shiftedThreshold, LocaleMatcher.FavorSubtag favorSubtag) -
getDesSuppScriptDistance
-
getRegionPartitionsDistance
-
getFallbackRegionDistance
-
trieNext
-
toString
-
partitionsForRegion
-
isParadigmLSR
-
getDefaultScriptDistance
public int getDefaultScriptDistance() -
getDefaultRegionDistance
int getDefaultRegionDistance() -
getDefaultDemotionPerDesiredLocale
public int getDefaultDemotionPerDesiredLocale() -
testOnlyGetDistanceTable
-
testOnlyPrintDistanceTable
public void testOnlyPrintDistanceTable()
-