Known Direct Subclasses |
ResourceBundle
is an abstract class which is the superclass of classes which
provide Locale
-specific resources. A bundle contains a number of named
resources, where the names are Strings
. A bundle may have a parent bundle,
and when a resource is not found in a bundle, the parent bundle is searched for
the resource. If the fallback mechanism reaches the base bundle and still
can't find the resource it throws a MissingResourceException
.
- All bundles for the same group of resources share a common base bundle. This base bundle acts as the root and is the last fallback in case none of its children was able to respond to a request.
- The first level contains changes between different languages. Only the
differences between a language and the language of the base bundle need to be
handled by a language-specific
ResourceBundle
. - The second level contains changes between different countries that use
the same language. Only the differences between a country and the country of
the language bundle need to be handled by a country-specific
ResourceBundle
. - The third level contains changes that don't have a geographic reason
(e.g. changes that where made at some point in time like
PREEURO
where the currency of come countries changed. The country bundle would return the current currency (Euro) and thePREEURO
variant bundle would return the old currency (e.g. DM for Germany).
- BaseName (base bundle)
- BaseName_de (german language bundle)
- BaseName_fr (french language bundle)
- BaseName_de_DE (bundle with Germany specific resources in german)
- BaseName_de_CH (bundle with Switzerland specific resources in german)
- BaseName_fr_CH (bundle with Switzerland specific resources in french)
- BaseName_de_DE_PREEURO (bundle with Germany specific resources in german of the time before the Euro)
- BaseName_fr_FR_PREEURO (bundle with France specific resources in french of the time before the Euro)
Nested Class Summary
class | ResourceBundle.Control | ResourceBundle.Control is a static utility class defines ResourceBundle load access methods, its default access order is as the same as before. |
Field Summary
protected ResourceBundle | parent | The parent of this ResourceBundle that is used if this bundle doesn't
include the requested resource. |
Public Constructor Summary
ResourceBundle()
Constructs a new instance of this class.
|
Public Method Summary
static void |
clearCache(ClassLoader loader)
|
static void | |
boolean |
containsKey(String key)
|
static ResourceBundle |
getBundle(String baseName, Locale targetLocale, ResourceBundle.Control control)
Finds the named resource bundle for the specified base name and control.
|
static ResourceBundle | |
static ResourceBundle | |
static ResourceBundle |
getBundle(String baseName, Locale targetLocale, ClassLoader loader, ResourceBundle.Control control)
Finds the named resource bundle for the specified base name and control.
|
static ResourceBundle |
getBundle(String bundleName, Locale locale, ClassLoader loader)
Finds the named resource bundle for the specified
Locale and ClassLoader . |
static ResourceBundle |
getBundle(String baseName, ResourceBundle.Control control)
Finds the named resource bundle for the specified base name and control.
|
abstract Enumeration<String> |
getKeys()
Returns the names of the resources contained in this
ResourceBundle . |
Locale |
getLocale()
Gets the
Locale of this ResourceBundle . |
final Object | |
final String | |
final String[] | |
Set<String> |
keySet()
|
Protected Method Summary
abstract Object |
handleGetObject(String key)
Returns the named resource from this
ResourceBundle , or null if the
resource is not found. |
Set<String> | |
void |
Inherited Method Summary
Fields
protected ResourceBundle parent
The parent of this ResourceBundle
that is used if this bundle doesn't
include the requested resource.
Public Constructors
public ResourceBundle ()
Constructs a new instance of this class.
Public Methods
public static void clearCache ()
public static ResourceBundle getBundle (String baseName, Locale targetLocale, ResourceBundle.Control control)
Finds the named resource bundle for the specified base name and control.
Parameters
baseName | the base name of a resource bundle |
---|---|
targetLocale | the target locale of the resource bundle |
control | the control that control the access sequence |
Returns
- the named resource bundle
public static ResourceBundle getBundle (String bundleName, Locale locale)
Finds the named ResourceBundle
for the specified Locale
and the caller
ClassLoader
.
Parameters
bundleName | the name of the ResourceBundle . |
---|---|
locale | the Locale . |
Returns
- the requested resource bundle.
Throws
MissingResourceException | if the resource bundle cannot be found. |
---|
public static ResourceBundle getBundle (String bundleName)
Finds the named resource bundle for the default Locale
and the caller's
ClassLoader
.
Parameters
bundleName | the name of the ResourceBundle . |
---|
Returns
- the requested
ResourceBundle
.
Throws
MissingResourceException | if the ResourceBundle cannot be found.
|
---|
public static ResourceBundle getBundle (String baseName, Locale targetLocale, ClassLoader loader, ResourceBundle.Control control)
Finds the named resource bundle for the specified base name and control.
Parameters
baseName | the base name of a resource bundle |
---|---|
targetLocale | the target locale of the resource bundle |
loader | the class loader to load resource |
control | the control that control the access sequence |
Returns
- the named resource bundle
public static ResourceBundle getBundle (String bundleName, Locale locale, ClassLoader loader)
Finds the named resource bundle for the specified Locale
and ClassLoader
.
The passed base name and Locale
are used to create resource bundle names.
The first name is created by concatenating the base name with the result
of toString()
. From this name all parent bundle names are
derived. Then the same thing is done for the default Locale
. This results
in a list of possible bundle names.
Example For the basename "BaseName", the Locale
of the
German part of Switzerland (de_CH) and the default Locale
en_US the list
would look something like this:
- BaseName_de_CH
- BaseName_de
- Basename_en_US
- Basename_en
- BaseName
ResourceBundle
with the names provided.
If such a class can be instantiated and initialized, it is returned and
all the parent bundles are instantiated too. If no such class can be
found this method tries to load a .properties
file with the names by
replacing dots in the base name with a slash and by appending
".properties
" at the end of the string. If such a resource can be found
by calling getResource(String)
it is used to
initialize a PropertyResourceBundle
. If this succeeds, it will
also load the parents of this ResourceBundle
.
For compatibility with older code, the bundle name isn't required to be
a fully qualified class name. It's also possible to directly pass
the path to a properties file (without a file extension).Parameters
bundleName | the name of the ResourceBundle . |
---|---|
locale | the Locale . |
loader | the ClassLoader to use. |
Returns
- the requested
ResourceBundle
.
Throws
MissingResourceException | if the ResourceBundle cannot be found.
|
---|
public static ResourceBundle getBundle (String baseName, ResourceBundle.Control control)
Finds the named resource bundle for the specified base name and control.
Parameters
baseName | the base name of a resource bundle |
---|---|
control | the control that control the access sequence |
Returns
- the named resource bundle
public abstract Enumeration<String> getKeys ()
Returns the names of the resources contained in this ResourceBundle
.
Returns
- an
Enumeration
of the resource names.
public Locale getLocale ()
Gets the Locale
of this ResourceBundle
. In case a bundle was not
found for the requested Locale
, this will return the actual Locale
of
this resource bundle that was found after doing a fallback.
Returns
- the
Locale
of thisResourceBundle
.
public final Object getObject (String key)
Returns the named resource from this ResourceBundle
. If the resource
cannot be found in this bundle, it falls back to the parent bundle (if
it's not null) by calling the handleGetObject(String)
method. If the resource still
can't be found it throws a MissingResourceException
.
Parameters
key | the name of the resource. |
---|
Returns
- the resource object.
Throws
MissingResourceException | if the resource is not found. |
---|
public final String getString (String key)
Returns the named string resource from this ResourceBundle
.
Parameters
key | the name of the resource. |
---|
Returns
- the resource string.
Throws
MissingResourceException | if the resource is not found. |
---|---|
ClassCastException | if the resource found is not a string. |
See Also
public final String[] getStringArray (String key)
Returns the named resource from this ResourceBundle
.
Parameters
key | the name of the resource. |
---|
Returns
- the resource string array.
Throws
MissingResourceException | if the resource is not found. |
---|---|
ClassCastException | if the resource found is not an array of strings. |
See Also
Protected Methods
protected abstract Object handleGetObject (String key)
Returns the named resource from this ResourceBundle
, or null if the
resource is not found.
Parameters
key | the name of the resource. |
---|
Returns
- the resource object.
protected void setParent (ResourceBundle bundle)
Sets the parent resource bundle of this ResourceBundle
. The parent is
searched for resources which are not found in this ResourceBundle
.
Parameters
bundle | the parent ResourceBundle .
|
---|