Class LocaleDistance

java.lang.Object
com.ibm.icu.impl.locale.LocaleDistance

public class LocaleDistance extends Object
Offline-built data for LocaleMatcher. Mostly but not only the data for mapping locales to their maximized forms.
  • Field Details

    • END_OF_SUBTAG

      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.
      See Also:
    • DISTANCE_SKIP_SCRIPT

      public static final int DISTANCE_SKIP_SCRIPT
      Distance value bit flag, set by the builder.
      See Also:
    • DISTANCE_IS_FINAL

      private static final int DISTANCE_IS_FINAL
      Distance 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

      private final BytesTrie trie
    • regionToPartitionsIndex

      private final byte[] regionToPartitionsIndex
      Maps each region to zero or more single-character partitions.
    • partitionArrays

      private final String[] partitionArrays
    • paradigmLSRs

      private final Set<LSR> paradigmLSRs
      Used to get the paradigm region for a cluster, if there is one.
    • 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

      public static final LocaleDistance INSTANCE
  • Constructor Details

  • 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

      private static final int getDesSuppScriptDistance(BytesTrie iter, long startState, String desired, String supported)
    • getRegionPartitionsDistance

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

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

      private static final int trieNext(BytesTrie iter, String s, boolean wantValue)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • partitionsForRegion

      private String partitionsForRegion(LSR lsr)
    • isParadigmLSR

      public boolean isParadigmLSR(LSR lsr)
    • getDefaultScriptDistance

      public int getDefaultScriptDistance()
    • getDefaultRegionDistance

      int getDefaultRegionDistance()
    • getDefaultDemotionPerDesiredLocale

      public int getDefaultDemotionPerDesiredLocale()
    • testOnlyGetDistanceTable

      public Map<String,Integer> testOnlyGetDistanceTable()
    • testOnlyPrintDistanceTable

      public void testOnlyPrintDistanceTable()