Top Description Inners Fields Constructors Methods
com.ibm.icu.impl.locale

public Class LocaleDistance

extends Object
Class Inheritance
Imports
java.nio.ByteBuffer, java.util.Arrays, .Collections, .LinkedHashSet, .Map, .MissingResourceException, .Set, .TreeMap, com.ibm.icu.impl.ICUData, .ICUResourceBundle, .UResource, com.ibm.icu.util.BytesTrie, .LocaleMatcher, .LocaleMatcher.FavorSubtag, .ULocale

Offline-built data for LocaleMatcher. Mostly but not only the data for mapping locales to their maximized forms.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class

Field Summary

Modifier and TypeField and Description
private static final int
private static final boolean
private final int
private final int
private final int
private final int
private static final int
private static final int
private static final int
DISTANCE_IS_FINAL

Distance value bit flag, set by trieNext().

private static final int
private static final int
private static final int
public static final int
DISTANCE_SKIP_SCRIPT

Distance value bit flag, set by the builder.

public static final int
END_OF_SUBTAG

Bit flag used on the last character of a subtag in the trie.

private static final int
private static final int
public static final LocaleDistance
public static final int
public static final int
public static final int
public static final int
public static final int
private final int
private final Set<LSR>
paradigmLSRs

Used to get the paradigm region for a cluster, if there is one.

private final String[]
private final byte[]
regionToPartitionsIndex

Maps each region to zero or more single-character partitions.

private final BytesTrie

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
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.

public int
pack-priv int
public int
private static final int
getDesSuppScriptDistance(BytesTrie iter, long startState, String desired, String supported)

public static final double
getDistanceDouble(int indexAndDistance)

public static final int
getDistanceFloor(int indexAndDistance)

private static final int
getFallbackRegionDistance(BytesTrie iter, long startState)

public static final int
getIndex(int indexAndDistance)

private static final int
getRegionPartitionsDistance(BytesTrie iter, long startState, String desiredPartitions, String supportedPartitions, int threshold)

public static final int
getShiftedDistance(int indexAndDistance)

private boolean
isMatch(LSR desired, LSR supported, int shiftedThreshold, LocaleMatcher.FavorSubtag favorSubtag)

public boolean
private String
public static final int
shiftDistance(int distance)

public int
testOnlyDistance(ULocale desired, ULocale supported, int threshold, LocaleMatcher.FavorSubtag favorSubtag)

public Map<String, Integer>
public void
public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
private static final int
trieNext(BytesTrie iter, String s, boolean wantValue)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

ABOVE_THRESHOLDback to summary
private static final int ABOVE_THRESHOLD
DEBUG_OUTPUTback to summary
private static final boolean DEBUG_OUTPUT
defaultDemotionPerDesiredLocaleback to summary
private final int defaultDemotionPerDesiredLocale
defaultLanguageDistanceback to summary
private final int defaultLanguageDistance
defaultRegionDistanceback to summary
private final int defaultRegionDistance
defaultScriptDistanceback to summary
private final int defaultScriptDistance
DISTANCE_FRACTION_MASKback to summary
private static final int DISTANCE_FRACTION_MASK
DISTANCE_INT_SHIFTback to summary
private static final int DISTANCE_INT_SHIFT
DISTANCE_IS_FINALback to summary
private static final int DISTANCE_IS_FINAL

Distance value bit flag, set by trieNext().

DISTANCE_IS_FINAL_OR_SKIP_SCRIPTback to summary
private static final int DISTANCE_IS_FINAL_OR_SKIP_SCRIPT
DISTANCE_MASKback to summary
private static final int DISTANCE_MASK
DISTANCE_SHIFTback to summary
private static final int DISTANCE_SHIFT
DISTANCE_SKIP_SCRIPTback to summary
public static final int DISTANCE_SKIP_SCRIPT

Distance value bit flag, set by the builder.

END_OF_SUBTAGback to summary
public static final int END_OF_SUBTAG

Bit flag used on the last character of a subtag in the trie. Must be set consistently by the builder and the lookup code.

INDEX_NEG_1back to summary
private static final int INDEX_NEG_1
INDEX_SHIFTback to summary
private static final int INDEX_SHIFT
INSTANCEback to summary
public static final LocaleDistance INSTANCE
IX_DEF_LANG_DISTANCEback to summary
public static final int IX_DEF_LANG_DISTANCE
IX_DEF_REGION_DISTANCEback to summary
public static final int IX_DEF_REGION_DISTANCE
IX_DEF_SCRIPT_DISTANCEback to summary
public static final int IX_DEF_SCRIPT_DISTANCE
IX_LIMITback to summary
public static final int IX_LIMIT
IX_MIN_REGION_DISTANCEback to summary
public static final int IX_MIN_REGION_DISTANCE
minRegionDistanceback to summary
private final int minRegionDistance
paradigmLSRsback to summary
private final Set<LSR> paradigmLSRs

Used to get the paradigm region for a cluster, if there is one.

partitionArraysback to summary
private final String[] partitionArrays
regionToPartitionsIndexback to summary
private final byte[] regionToPartitionsIndex

Maps each region to zero or more single-character partitions.

trieback to summary
private final BytesTrie trie

Constructor Detail

LocaleDistanceback to summary
private LocaleDistance(LocaleDistance.Data data)

Method Detail

getBestIndexAndDistanceback to summary
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.

getDefaultDemotionPerDesiredLocaleback to summary
public int getDefaultDemotionPerDesiredLocale()
getDefaultRegionDistanceback to summary
pack-priv int getDefaultRegionDistance()
getDefaultScriptDistanceback to summary
public int getDefaultScriptDistance()
getDesSuppScriptDistanceback to summary
private static final int getDesSuppScriptDistance(BytesTrie iter, long startState, String desired, String supported)
getDistanceDoubleback to summary
public static final double getDistanceDouble(int indexAndDistance)
getDistanceFloorback to summary
public static final int getDistanceFloor(int indexAndDistance)
getFallbackRegionDistanceback to summary
private static final int getFallbackRegionDistance(BytesTrie iter, long startState)
getIndexback to summary
public static final int getIndex(int indexAndDistance)
getRegionPartitionsDistanceback to summary
private static final int getRegionPartitionsDistance(BytesTrie iter, long startState, String desiredPartitions, String supportedPartitions, int threshold)
getShiftedDistanceback to summary
public static final int getShiftedDistance(int indexAndDistance)
isMatchback to summary
private boolean isMatch(LSR desired, LSR supported, int shiftedThreshold, LocaleMatcher.FavorSubtag favorSubtag)
isParadigmLSRback to summary
public boolean isParadigmLSR(LSR lsr)
partitionsForRegionback to summary
private String partitionsForRegion(LSR lsr)
shiftDistanceback to summary
public static final int shiftDistance(int distance)
testOnlyDistanceback to summary
public int testOnlyDistance(ULocale desired, ULocale supported, int threshold, LocaleMatcher.FavorSubtag favorSubtag)
testOnlyGetDistanceTableback to summary
public Map<String, Integer> testOnlyGetDistanceTable()
testOnlyPrintDistanceTableback to summary
public void testOnlyPrintDistanceTable()
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object.

Annotations
@Override
trieNextback to summary
private static final int trieNext(BytesTrie iter, String s, boolean wantValue)
com.ibm.icu.impl.locale back to summary

public final Class LocaleDistance.Data

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
public int[]
public Set<LSR>
public String[]
public byte[]
public byte[]

Constructor Summary

AccessConstructor and Description
public
Data(byte[] trie, byte[] regionToPartitionsIndex, String[] partitionArrays, Set<LSR> paradigmLSRs, int[] distances)

Method Summary

Modifier and TypeMethod and Description
public boolean
equals(Object
the reference object with which to compare.
other
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.
private static UResource.Value
public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for the object.
public static LocaleDistance.Data
load()

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAlltoStringwaitwaitwait

Field Detail

distancesback to summary
public int[] distances
paradigmLSRsback to summary
public Set<LSR> paradigmLSRs
partitionArraysback to summary
public String[] partitionArrays
regionToPartitionsIndexback to summary
public byte[] regionToPartitionsIndex
trieback to summary
public byte[] trie

Constructor Detail

Databack to summary
public Data(byte[] trie, byte[] regionToPartitionsIndex, String[] partitionArrays, Set<LSR> paradigmLSRs, int[] distances)

Method Detail

equalsback to summary
public boolean equals(Object other)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
other:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
getValueback to summary
private static UResource.Value getValue(UResource.Table table, String key, UResource.Value value)
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object.

Annotations
@Override
loadback to summary
public static LocaleDistance.Data load() throws MissingResourceException