Class PluralRulesLoader

java.lang.Object
com.ibm.icu.text.PluralRules.Factory
com.ibm.icu.impl.PluralRulesLoader

public class PluralRulesLoader extends PluralRules.Factory
Loader for plural rules data.
  • Field Details

  • Constructor Details

    • PluralRulesLoader

      private PluralRulesLoader()
      Access through singleton.
  • Method Details

    • getAvailableULocales

      public ULocale[] getAvailableULocales()
      Returns the locales for which we have plurals data. Utility for testing.
      Specified by:
      getAvailableULocales in class PluralRules.Factory
    • getFunctionalEquivalent

      public ULocale getFunctionalEquivalent(ULocale locale, boolean[] isAvailable)
      Returns the functionally equivalent locale.
      Specified by:
      getFunctionalEquivalent in class PluralRules.Factory
      Parameters:
      locale - the locale to check
      isAvailable - if not null and of length > 0, this will hold 'true' at index 0 if locale is directly defined (without fallback) as having plural rules
      Returns:
      the functionally-equivalent locale
    • getLocaleIdToRulesIdMap

      private Map<String,String> getLocaleIdToRulesIdMap(PluralRules.PluralType type)
      Returns the lazily-constructed map.
    • getRulesIdToEquivalentULocaleMap

      private Map<String,ULocale> getRulesIdToEquivalentULocaleMap()
      Returns the lazily-constructed map.
    • checkBuildRulesIdMaps

      private void checkBuildRulesIdMaps()
      Lazily constructs the localeIdToRulesId and rulesIdToEquivalentULocale maps if necessary. These exactly reflect the contents of the locales resource in plurals.res.
    • getRulesIdForLocale

      public String getRulesIdForLocale(ULocale locale, PluralRules.PluralType type)
      Gets the rulesId from the locale,with locale fallback. If there is no rulesId, return null. The rulesId might be the empty string if the rule is the default rule.
    • getOrCreateRulesForLocale

      public PluralRules getOrCreateRulesForLocale(ULocale locale, PluralRules.PluralType type)
      Gets the rule from the rulesId. If there is no rule for this rulesId, return null.
    • getPluralBundle

      public UResourceBundle getPluralBundle() throws MissingResourceException
      Return the plurals resource. Note MissingResourceException is unchecked, listed here for clarity. Callers should handle this exception.
      Throws:
      MissingResourceException
    • forLocale

      public PluralRules forLocale(ULocale locale, PluralRules.PluralType type)
      Returns the plural rules for the the locale. If we don't have data, com.ibm.icu.text.PluralRules.DEFAULT is returned.
      Specified by:
      forLocale in class PluralRules.Factory
      Parameters:
      locale - The locale for which a PluralRules object is returned.
      type - The plural type (e.g., cardinal or ordinal).
      Returns:
      The predefined PluralRules object for this locale. If there's no predefined rules for this locale, the rules for the closest parent in the locale hierarchy that has one will be returned. The final fallback always returns the default rules.
    • hasOverride

      public boolean hasOverride(ULocale locale)
      Description copied from class: PluralRules.Factory
      Returns whether or not there are overrides.
      Specified by:
      hasOverride in class PluralRules.Factory