com.ibm.icu.util
Class OverlayBundle

java.lang.Object
  extended by java.util.ResourceBundle
      extended by com.ibm.icu.util.OverlayBundle

Deprecated. ICU 2.4. This class may be removed or modified.

public class OverlayBundle
extends ResourceBundle

A ResourceBundle that overlays one hierarchy atop another. This is best explained by example. Suppose one wants to use the resource hiararchy (in JDK 1.2 and 1.3, but not 1.4) at "java.text.resources.LocaleElements", but one wants to use a modified version of the "NumberPatterns" resource in the fr_FR locale. One way to do this is to add special case code to the lookup operation to check for fr_FR and the key "NumberPatterns", and in that case, load up custom data. However, this becomes unwieldy and places some information about the effective resource hierarchy into the code. The OverlayBundle solves this problem by layering another hierarchy, e.g, "com.acme.resources.LocaleElements", on top of a base hierarchy. When a resource is requested, it is first sought in the overlay hierarchy, and if not found there, it is sought in the base hierarchy. Multiple overlays are supported, but in practice one is usually sufficient. The OverlayBundle also addresses the problem of country-oriented data. To specify the default data for a language, one just sets the language resource bundle data. However, specifying the default data for a country using the standard ResourceBundle mechanism is impossible. The OverlayBundle recognizes "wildcard" locales with the special language code "xx". When looking up data for a locale with a non-empty country, if an exact locale match cannot be found, the OverlayBundle looks for data in the locale xx_YY, where YY is the country being sought. This effectively adds another entry in the fallback sequence for a locale aa_BB: aa_BB, xx_BB, aa, root. Wildcard locales are not implemented for the base hierarchy, only for overlays. The OverlayBundle is implemented as an array of n ResourceBundle base names. The base names are searched from 0 to n-1. Base name n-1 is special; it is the base hierarchy. This should be a well-populated hierarchy with most of the default data, typically, the icu or sun core hierarchies. The base hierarchy is treated differently from the overlays above it. It does not get wildcard resolution, and the getKeys() framework method is delegated to the base hierarchy bundle. Usage: Instantiate an OverlayBundle directly (not via a factory method as in ResourceBundle). Instead of specifying a single base name, pass it an array of 2 or more base names. After that, use it exactly as you would use ResourceBundle.

Author:
Alan Liu
See Also:
ResourceBundle
Status:
Internal. This API is ICU internal only.

Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.ResourceBundle
ResourceBundle.Control
 
Field Summary
 
Fields inherited from class java.util.ResourceBundle
parent
 
Constructor Summary
OverlayBundle(String[] baseNames, Locale locale)
          Deprecated. ICU 2.4. This class may be removed or modified.
 
Method Summary
 Enumeration<String> getKeys()
          Deprecated. ICU 2.4. This class may be removed or modified.
protected  Object handleGetObject(String key)
          Deprecated. ICU 2.4. This class may be removed or modified.
 
Methods inherited from class java.util.ResourceBundle
clearCache, clearCache, containsKey, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getLocale, getObject, getString, getStringArray, handleKeySet, keySet, setParent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OverlayBundle

public OverlayBundle(String[] baseNames,
                     Locale locale)
Deprecated. ICU 2.4. This class may be removed or modified.

Construct an overlay bundle given a sequence of base names and a locale.

Status:
Internal. This API is ICU internal only.
Method Detail

handleGetObject

protected Object handleGetObject(String key)
                          throws MissingResourceException
Deprecated. ICU 2.4. This class may be removed or modified.

ResourceBundle framework method. Delegates to bundles[i].getObject().

Specified by:
handleGetObject in class ResourceBundle
Throws:
MissingResourceException
Status:
Internal. This API is ICU internal only.

getKeys

public Enumeration<String> getKeys()
Deprecated. ICU 2.4. This class may be removed or modified.

ResourceBundle framework method. Delegates to bundles[bundles.length-1].getKeys().

Specified by:
getKeys in class ResourceBundle
Status:
Internal. This API is ICU internal only.


Copyright (c) 2011 IBM Corporation and others.