ResourceBundleProvider
public abstract class AbstractResourceBundleProvider extends Object implements ResourceBundleProvider
AbstractResourceBundleProvider
is an abstract class that provides
the basic support for a provider implementation class for
ResourceBundleProvider
.
Resource bundles can be packaged in one or more
named modules, bundle modules. The consumer of the
resource bundle is the one calling ResourceBundle.getBundle(String)
.
In order for the consumer module to load a resource bundle
"com.example.app.MyResources
" provided by another module,
it will use the service loader
mechanism. A service interface named "com.example.app.MyResourcesProvider
"
must be defined and a bundle provider module will provide an
implementation class of "com.example.app.MyResourcesProvider
"
as follows:
import com.example.app.MyResourcesProvider;
class MyResourcesProviderImpl extends AbstractResourceBundleProvider
implements MyResourcesProvider
{
protected String toBundleName(String baseName, Locale locale) {
// return the bundle name per the naming of the resource bundle
:
}
public ResourceBundle getBundle(String baseName, Locale locale) {
// this module only provides bundles in french
if (locale.equals(Locale.FRENCH)) {
return super.getBundle(baseName, locale);
}
return null;
}
}
Modifier | Constructor | Description |
---|---|---|
protected |
AbstractResourceBundleProvider() |
Constructs an
AbstractResourceBundleProvider with the
"java.properties" format. |
protected |
AbstractResourceBundleProvider(String... formats) |
Constructs an
AbstractResourceBundleProvider with the specified
formats . |
Modifier and Type | Method | Description |
---|---|---|
ResourceBundle |
getBundle(String baseName,
Locale locale) |
Returns a
ResourceBundle for the given baseName and
locale . |
protected String |
toBundleName(String baseName,
Locale locale) |
Returns the bundle name for the given
baseName and
locale that this provider provides. |
protected AbstractResourceBundleProvider()
AbstractResourceBundleProvider
with the
"java.properties" format. This constructor is equivalent to
AbstractResourceBundleProvider("java.properties")
.protected AbstractResourceBundleProvider(String... formats)
AbstractResourceBundleProvider
with the specified
formats
. The getBundle(String, Locale)
method looks up
resource bundles for the given formats
. formats
must
be "java.class" or "java.properties".formats
- the formats to be used for loading resource bundlesNullPointerException
- if the given formats
is nullIllegalArgumentException
- if the given formats
is not
"java.class" or "java.properties".protected String toBundleName(String baseName, Locale locale)
baseName
and
locale
that this provider provides.For example, if baseName
is "p.resources.Bundle"
then
the resource bundle name of "p.resources.Bundle"
of
Locale("ja", "", "XX")
and Locale("en")
could be "p.resources.ja.Bundle_ja_ _XX"
and
p.resources.Bundle_en"
respectively
This method is called from the default implementation of the
getBundle(String, Locale)
method.
ResourceBundle.Control.toBundleName(String, Locale)
.baseName
- the base name of the resource bundle, a fully qualified
class namelocale
- the locale for which a resource bundle should be loadedpublic ResourceBundle getBundle(String baseName, Locale locale)
ResourceBundle
for the given baseName
and
locale
.getBundle
in interface ResourceBundleProvider
toBundleName
method to get the
bundle name for the baseName
and locale
and finds the
resource bundle of the bundle name local in the module of this provider.
It will only search the formats specified when this provider was
constructed.baseName
- the base bundle name of the resource bundle, a fully
qualified class name.locale
- the locale for which the resource bundle should be instantiatedResourceBundle
of the given baseName
and
locale
, or null
if no resource bundle is foundNullPointerException
- if baseName
or locale
is
null
UncheckedIOException
- if any IO exception occurred during resource
bundle loadingCopyright © 1993, 2017, Oracle and/or its affiliates · All rights reserved · License