Class Messages
ResourceBundle.
Wraps a ResourceBundle to provide some useful additional functionality.
-
Instead of throwing
MissingResourceException, theResourceBundle.getString(String)method will return"{!key}" if the message could not be found. - Supported hierarchical lookup of resources from parent parent classes.
- Support for easy retrieval of localized bundles.
- Support for generalized resource bundles (e.g. properties files containing keys for several classes).
The following example shows the basic usage of this class for retrieving localized messages:
The ability to resolve keys prefixed by class name allows you to place all your messages in a single file such
as a common
The following shows how to retrieve messages from a common bundle:
Resource bundles are searched using the following base name patterns:
"{package}.{name}" "{package}.i18n.{name}" "{package}.nls.{name}" "{package}.messages.{name}"
These patterns can be customized using the Messages.Builder.baseNames(String...) method.
Localized messages can be retrieved in the following way:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class java.util.ResourceBundle
ResourceBundle.Control -
Field Summary
Fields inherited from class java.util.ResourceBundle
parent -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic MessagesComposes two pre-built bundles into a single parent-chained bundle without mutating either input.booleancontainsKey(String key) static final Messages.BuilderStatic creator.findFirstString(String... keys) Looks for all the specified keys in the resource bundle and returns the first value that exists.Returns this message bundle for the specified locale.getKeys()Similar toResourceBundle.getString(String)except allows you to pass inMessageFormatobjects.protected ObjecthandleGetObject(String key) keySet()Returns all keys in this resource bundle with the specified prefix.static final MessagesCreates a new message bundle for the specified class.static final MessagesCreates a new message bundle for the specified class using the specified bundle name.toString()Methods inherited from class java.util.ResourceBundle
clearCache, clearCache, getBaseBundleName, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getLocale, getObject, getString, getStringArray, handleKeySet, setParent
-
Constructor Details
-
Messages
Constructor.- Parameters:
builder- The builder for this object.
-
-
Method Details
-
create
Static creator.- Parameters:
forClass- The class we're creating this object for.- Returns:
- A new builder.
-
of
Creates a new message bundle for the specified class.- Parameters:
forClass- The class we're creating this object for.- Returns:
- A new message bundle belonging to the class.
-
of
Creates a new message bundle for the specified class using the specified bundle name.- Parameters:
forClass- The class we're creating this object for.name- The bundle name (e.g."Messages" ).
Ifnull , uses the class name.- Returns:
- A new message bundle belonging to the class.
-
chain
Composes two pre-built bundles into a single parent-chained bundle without mutating either input.This is the public seam for parent-chain composition. Use it when one
Messagesbundle is built locally and needs to inherit unresolved keys from a separately-built bundle — for example, a REST mixin sub-context inheriting its host's bundle. TheMessages.Builderchains inner locations viaMessages.Builder.parent(Messages)during its ownMessages.Builder.build()pass and does not expose this composition as a public API;chain(...)fills that gap without changing existing builder semantics.The returned bundle is a NEW chain of
Messagesinstances that share the innerResourceBundle,forClass, andlocaleofchild's links. Neitherchildnorparentis mutated. Lookups followchild's chain first and fall through toparentfor any key not present in the child chain.- Parameters:
child- The local bundle whose keys win first.
Ifnull,parentis returned unchanged.parent- The parent bundle whose keys are looked up whenchild's chain doesn't resolve.
Ifnull,childis returned unchanged.- Returns:
- The composed bundle, or
nullif both arguments arenull.
-
containsKey
- Overrides:
containsKeyin classResourceBundle
-
findFirstString
Looks for all the specified keys in the resource bundle and returns the first value that exists.- Parameters:
keys- The list of possible keys.- Returns:
- The resolved value, or
null if no value is found or the resource bundle is missing.
-
forLocale
Returns this message bundle for the specified locale.- Parameters:
locale- The locale to get the messages for. Can benull (the default locale is used).- Returns:
- A new
Messagesobject. Nevernull .
-
getKeys
- Specified by:
getKeysin classResourceBundle
-
getString
Similar toResourceBundle.getString(String)except allows you to pass inMessageFormatobjects.- Parameters:
key- The resource bundle key.args- OptionalMessageFormat-style arguments.- Returns:
- The resolved value. Never
null ."{!key}" if the key is missing.
-
keySet
- Overrides:
keySetin classResourceBundle
-
keySet
Returns all keys in this resource bundle with the specified prefix.Keys are returned in alphabetical order.
- Parameters:
prefix- The prefix.- Returns:
- The set of all keys in the resource bundle with the prefix.
-
properties
-
toString
-
handleGetObject
- Specified by:
handleGetObjectin classResourceBundle
-