Class ICUResourceBundle


public class ICUResourceBundle extends UResourceBundle
  • Field Details

    • NO_INHERITANCE_MARKER

      public static final String NO_INHERITANCE_MARKER
      CLDR string value "∅∅∅" prevents fallback to the parent bundle.
      See Also:
    • ICU_DATA_CLASS_LOADER

      public static final ClassLoader ICU_DATA_CLASS_LOADER
      The class loader constant to be used with getBundleInstance API
    • INSTALLED_LOCALES

      protected static final String INSTALLED_LOCALES
      The name of the resource containing the installed locales
      See Also:
    • key

      protected String key
      Data member where the subclasses store the key.
    • RES_BOGUS

      public static final int RES_BOGUS
      A resource word value that means "no resource". Note: 0xffffffff == -1 This has the same value as UResourceBundle.NONE, but they are semantically different and should be used appropriately according to context: NONE means "no type". (The type of RES_BOGUS is RES_RESERVED=15 which was defined in ICU4C ures.h.)
      See Also:
    • ALIAS

      public static final int ALIAS
      Resource type constant for aliases; internally stores a string which identifies the actual resource storing the data (can be in a different resource bundle). Resolved internally before delivering the actual resource through the API.
      See Also:
    • TABLE32

      public static final int TABLE32
      Resource type constant for tables with 32-bit count, key offsets and values.
      See Also:
    • TABLE16

      public static final int TABLE16
      Resource type constant for tables with 16-bit count, key offsets and values. All values are STRING_V2 strings.
      See Also:
    • STRING_V2

      public static final int STRING_V2
      Resource type constant for 16-bit Unicode strings in formatVersion 2.
      See Also:
    • ARRAY16

      public static final int ARRAY16
      Resource type constant for arrays with 16-bit count and values. All values are STRING_V2 strings.
      See Also:
  • Constructor Details

  • Method Details

    • getFunctionalEquivalent

      public static final ULocale getFunctionalEquivalent(String baseName, ClassLoader loader, String resName, String keyword, ULocale locID, boolean[] isAvailable, boolean omitDefault)
      Returns a functionally equivalent locale, considering keywords as well, for the specified keyword.
      Parameters:
      baseName - resource specifier
      resName - top level resource to consider (such as "collations")
      keyword - a particular keyword to consider (such as "collation" )
      locID - The requested locale
      isAvailable - If non-null, 1-element array of fillin parameter that indicates whether the requested locale was available. The locale is defined as 'available' if it physically exists within the specified tree and included in 'InstalledLocales'.
      omitDefault - if true, omit keyword and value if default. 'de_DE\@collation=standard' -> 'de_DE'
      Returns:
      the locale
    • getKeywordValues

      public static final String[] getKeywordValues(String baseName, String keyword)
      Given a tree path and keyword, return a string enumeration of all possible values for that keyword.
      Parameters:
      baseName - resource specifier
      keyword - a particular keyword to consider, must match a top level resource name within the tree. (i.e. "collations")
    • getWithFallback

      public ICUResourceBundle getWithFallback(String path) throws MissingResourceException
      This method performs multilevel fallback for fetching items from the bundle e.g: If resource is in the form de__PHONEBOOK{ collations{ default{ "phonebook"} } } If the value of "default" key needs to be accessed, then do: UResourceBundle bundle = UResourceBundle.getBundleInstance("de__PHONEBOOK"); ICUResourceBundle result = null; if(bundle instanceof ICUResourceBundle){ result = ((ICUResourceBundle) bundle).getWithFallback("collations/default"); }
      Parameters:
      path - The path to the required resource key
      Returns:
      resource represented by the key
      Throws:
      MissingResourceException - If a resource was not found.
    • at

      public ICUResourceBundle at(int index)
    • at

      public ICUResourceBundle at(String key)
    • findTopLevel

      public ICUResourceBundle findTopLevel(int index)
      Description copied from class: UResourceBundle
      Returns a resource in a given resource that has a given index, or null if the resource is not found.
      Overrides:
      findTopLevel in class UResourceBundle
      Parameters:
      index - the index of the resource
      Returns:
      the resource, or null
      See Also:
    • findTopLevel

      public ICUResourceBundle findTopLevel(String aKey)
      Description copied from class: UResourceBundle
      Returns a resource in a given resource that has a given key, or null if the resource is not found.
      Overrides:
      findTopLevel in class UResourceBundle
      Parameters:
      aKey - the key associated with the wanted resource
      Returns:
      the resource, or null
      See Also:
    • findWithFallback

      public ICUResourceBundle findWithFallback(String path)
      Like getWithFallback, but returns null if the resource is not found instead of throwing an exception.
      Parameters:
      path - the path to the resource
      Returns:
      the resource, or null
    • findStringWithFallback

      public String findStringWithFallback(String path)
    • getStringWithFallback

      public String getStringWithFallback(String path) throws MissingResourceException
      Throws:
      MissingResourceException
    • getValueWithFallback

      public UResource.Value getValueWithFallback(String path) throws MissingResourceException
      Throws:
      MissingResourceException
    • getAllItemsWithFallbackNoFail

      public void getAllItemsWithFallbackNoFail(String path, UResource.Sink sink)
    • getAllItemsWithFallback

      public void getAllItemsWithFallback(String path, UResource.Sink sink) throws MissingResourceException
      Locates the resource specified by path in this resource bundle (performing any necessary fallback and following any aliases) and calls the specified sink's put() method with that resource. Then walks the bundle's parent chain, calling put() on the sink for each item in the parent chain.
      Parameters:
      path - The path of the desired resource
      sink - A UResource.Sink that gets called for each resource in the parent chain
      Throws:
      MissingResourceException
    • getAllChildrenWithFallback

      public void getAllChildrenWithFallback(String path, UResource.Sink sink) throws MissingResourceException
      Locates the resource specified by path in this resource bundle (performing any necessary fallback and following any aliases) and, if the resource is a table resource, iterates over its immediate child resources (again, following any aliases to get the individual resource values), and calls the specified sink's put() method for each child resource (passing it that resource's key and either its actual value or, if that value is an alias, the value you get by following the alias). Then walks back over the bundle's parent chain, similarly iterating over each parent table resource's child resources. Does not descend beyond one level of table children.
      Parameters:
      path - The path of the desired resource
      sink - A UResource.Sink that gets called for each child resource of the specified resource (and each child of the resources in its parent chain).
      Throws:
      MissingResourceException
    • getAvailableLocaleNameSet

      public static Set<String> getAvailableLocaleNameSet(String bundlePrefix, ClassLoader loader)
      Return a set of the locale names supported by a collection of resource bundles.
      Parameters:
      bundlePrefix - the prefix of the resource bundles to use.
    • getFullLocaleNameSet

      public static Set<String> getFullLocaleNameSet()
      Return a set of all the locale names supported by a collection of resource bundles.
    • getFullLocaleNameSet

      public static Set<String> getFullLocaleNameSet(String bundlePrefix, ClassLoader loader)
      Return a set of all the locale names supported by a collection of resource bundles.
      Parameters:
      bundlePrefix - the prefix of the resource bundles to use.
    • getAvailableLocaleNameSet

      public static Set<String> getAvailableLocaleNameSet()
      Return a set of the locale names supported by a collection of resource bundles.
    • getAvailableULocales

      public static final ULocale[] getAvailableULocales(String baseName, ClassLoader loader, ULocale.AvailableType type)
      Get the set of Locales installed in the specified bundles, for the specified type.
      Returns:
      the list of available locales
    • getAvailableULocales

      public static final ULocale[] getAvailableULocales()
      Get the set of ULocales installed the base bundle.
      Returns:
      the list of available locales
    • getAvailableULocales

      public static final ULocale[] getAvailableULocales(ULocale.AvailableType type)
      Get the set of ULocales installed the base bundle, for the specified type.
      Returns:
      the list of available locales for the specified type
    • getAvailableULocales

      public static final ULocale[] getAvailableULocales(String baseName, ClassLoader loader)
      Get the set of Locales installed in the specified bundles.
      Returns:
      the list of available locales
    • getAvailableLocales

      public static final Locale[] getAvailableLocales(String baseName, ClassLoader loader, ULocale.AvailableType type)
      Get the set of Locales installed in the specified bundles, for the specified type.
      Returns:
      the list of available locales
    • getAvailableLocales

      public static final Locale[] getAvailableLocales()
      Get the set of ULocales installed the base bundle.
      Returns:
      the list of available locales
    • getAvailableLocales

      public static final Locale[] getAvailableLocales(ULocale.AvailableType type)
      Get the set of Locales installed the base bundle, for the specified type.
      Returns:
      the list of available locales
    • getAvailableLocales

      public static final Locale[] getAvailableLocales(String baseName, ClassLoader loader)
      Get the set of Locales installed in the specified bundles.
      Returns:
      the list of available locales
    • getLocaleList

      public static final Locale[] getLocaleList(ULocale[] ulocales)
      Convert a list of ULocales to a list of Locales. ULocales with a script code will not be converted since they cannot be represented as a Locale. This means that the two lists will not match one-to-one, and that the returned list might be shorter than the input list.
      Parameters:
      ulocales - a list of ULocales to convert to a list of Locales.
      Returns:
      the list of converted ULocales
    • getLocale

      public Locale getLocale()
      Returns the locale of this resource bundle. This method can be used after a call to getBundle() to determine whether the resource bundle returned really corresponds to the requested locale or is a fallback.
      Overrides:
      getLocale in class UResourceBundle
      Returns:
      the locale of this resource bundle
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getBundleInstance

      public static ICUResourceBundle getBundleInstance(String baseName, String localeID, ClassLoader root, boolean disableFallback)
    • getBundleInstance

      public static ICUResourceBundle getBundleInstance(String baseName, ULocale locale, ICUResourceBundle.OpenType openType)
    • getBundleInstance

      public static ICUResourceBundle getBundleInstance(String baseName, String localeID, ClassLoader root, ICUResourceBundle.OpenType openType)
    • getParentLocaleID

      public static String getParentLocaleID(String name, String origName, ICUResourceBundle.OpenType openType)
    • createBundle

      public static ICUResourceBundle createBundle(String baseName, String localeID, ClassLoader root)
      Create a bundle using a reader.
      Parameters:
      baseName - The name for the bundle.
      localeID - The locale identification.
      root - The ClassLoader object root.
      Returns:
      the new bundle
    • getLocaleID

      protected String getLocaleID()
      Description copied from class: UResourceBundle
      Returns the localeID
      Specified by:
      getLocaleID in class UResourceBundle
      Returns:
      The string representation of the localeID
    • getBaseName

      protected String getBaseName()
      Description copied from class: UResourceBundle
      Returns the base name of the resource bundle
      Specified by:
      getBaseName in class UResourceBundle
      Returns:
      The string representation of the base name
    • getULocale

      public ULocale getULocale()
      Description copied from class: UResourceBundle
      Returns the RFC 3066 conformant locale id of this resource bundle. This method can be used after a call to getBundleInstance() to determine whether the resource bundle returned really corresponds to the requested locale or is a fallback.
      Specified by:
      getULocale in class UResourceBundle
      Returns:
      the locale of this resource bundle
    • isRoot

      public boolean isRoot()
      Returns true if this is the root bundle, or an item in the root bundle.
    • getParent

      public ICUResourceBundle getParent()
      Description copied from class: UResourceBundle
      Returns the parent bundle
      Specified by:
      getParent in class UResourceBundle
      Returns:
      The parent bundle
    • setParent

      protected void setParent(ResourceBundle parent)
      Overrides:
      setParent in class ResourceBundle
    • getKey

      public String getKey()
      Description copied from class: UResourceBundle
      Returns the key associated with a given resource. Not all the resources have a key - only those that are members of a table.
      Overrides:
      getKey in class UResourceBundle
      Returns:
      a key associated to this resource, or null if it doesn't have a key
    • getAliasedResource

      protected static ICUResourceBundle getAliasedResource(ICUResourceBundle base, String[] keys, int depth, String key, int _resource, HashMap<String,String> aliasesVisited, UResourceBundle requested)
      Returns the resource object referred to from the alias _resource int's path string. Throws MissingResourceException if not found. If the alias path does not contain a key path: If keys != null then keys[:depth] is used. Otherwise the base key path plus the key parameter is used.
      Parameters:
      base - A direct or indirect container of the alias.
      keys - The key path to the alias, or null. (const)
      depth - The length of the key path, if keys != null.
      key - The alias' own key within this current container, if keys == null.
      _resource - The alias resource int.
      aliasesVisited - Set of alias path strings already visited, for detecting loops. We cannot change the type (e.g., to Set) because it is used in protected/@stable UResourceBundle methods.
      requested - The original resource object from which the lookup started, which is the starting point for "/LOCALE/..." aliases.
      Returns:
      the aliased resource object
    • getAliasedResource

      protected static ICUResourceBundle getAliasedResource(String rpath, ClassLoader loaderToUse, String baseName, String[] keys, int depth, String[] baseKeyPath, HashMap<String,String> aliasesVisited, UResourceBundle requested)
    • getTopLevelKeySet

      @Deprecated public final Set<String> getTopLevelKeySet()
      Deprecated.
      This API is ICU internal only.
    • setTopLevelKeySet

      @Deprecated public final void setTopLevelKeySet(Set<String> keySet)
      Deprecated.
      This API is ICU internal only.
    • handleGetKeys

      protected Enumeration<String> handleGetKeys()
      Description copied from class: UResourceBundle
      Actual worker method for fetching the keys of resources contained in the resource. Sub classes must override this method if they support keys and associated resources.
      Overrides:
      handleGetKeys in class UResourceBundle
      Returns:
      Enumeration An enumeration of all the keys in this resource.
    • isTopLevelResource

      protected boolean isTopLevelResource()
      Description copied from class: UResourceBundle
      Is this a top-level resource, that is, a whole bundle?
      Overrides:
      isTopLevelResource in class UResourceBundle
      Returns:
      true if this is a top-level resource