Package org.apache.tomcat.jakartaee
Class StringManager
- java.lang.Object
-
- org.apache.tomcat.jakartaee.StringManager
-
public class StringManager extends java.lang.Object
An internationalization / localization helper class which reduces the bother of handling ResourceBundles and takes care of the common cases of message formatting which otherwise require the creation of Object arrays and such.The StringManager operates on a package basis. One StringManager per package can be created and accessed via the getManager method call.
The StringManager will look for a ResourceBundle named by the package name given plus the suffix of "LocalStrings". In practice, this means that the localized information will be contained in a LocalStrings.properties file located in the package directory of the class path.
Please see the documentation for java.util.ResourceBundle for more information.
- See Also:
ResourceBundle
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.ResourceBundle
bundle
The ResourceBundle for this StringManager.private java.util.Locale
locale
private static int
LOCALE_CACHE_SIZE
private static java.util.Map<java.lang.String,java.util.Map<java.util.Locale,StringManager>>
managers
-
Constructor Summary
Constructors Modifier Constructor Description private
StringManager(java.lang.String packageName, java.util.Locale locale)
Creates a new StringManager for a given package.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static StringManager
getManager(java.lang.Class<?> clazz)
Get the StringManager for a given class.static StringManager
getManager(java.lang.String packageName)
Get the StringManager for a particular package.static StringManager
getManager(java.lang.String packageName, java.util.Locale locale)
Get the StringManager for a particular package and Locale.java.lang.String
getString(java.lang.String key)
Get a string from the underlying resource bundle or return null if the String is not found.java.lang.String
getString(java.lang.String key, java.lang.Object... args)
Get a string from the underlying resource bundle and format it with the given set of arguments.
-
-
-
Field Detail
-
LOCALE_CACHE_SIZE
private static int LOCALE_CACHE_SIZE
-
bundle
private final java.util.ResourceBundle bundle
The ResourceBundle for this StringManager.
-
locale
private final java.util.Locale locale
-
managers
private static final java.util.Map<java.lang.String,java.util.Map<java.util.Locale,StringManager>> managers
-
-
Constructor Detail
-
StringManager
private StringManager(java.lang.String packageName, java.util.Locale locale)
Creates a new StringManager for a given package. This is a private method and all access to it is arbitrated by the static getManager method call so that only one StringManager per package will be created.- Parameters:
packageName
- Name of package to create StringManager for.
-
-
Method Detail
-
getString
public java.lang.String getString(java.lang.String key)
Get a string from the underlying resource bundle or return null if the String is not found.- Parameters:
key
- to desired resource String- Returns:
- resource String matching key from underlying bundle or null if not found.
- Throws:
java.lang.IllegalArgumentException
- if key is null
-
getString
public java.lang.String getString(java.lang.String key, java.lang.Object... args)
Get a string from the underlying resource bundle and format it with the given set of arguments.- Parameters:
key
- The key for the required messageargs
- The values to insert into the message- Returns:
- The request string formatted with the provided arguments or the key if the key was not found.
-
getManager
public static final StringManager getManager(java.lang.Class<?> clazz)
Get the StringManager for a given class. The StringManager will be returned for the package in which the class is located. If a manager for that package already exists, it will be reused, else a new StringManager will be created and returned.- Parameters:
clazz
- The class for which to retrieve the StringManager- Returns:
- The instance associated with the package of the provide class
-
getManager
public static final StringManager getManager(java.lang.String packageName)
Get the StringManager for a particular package. If a manager for a package already exists, it will be reused, else a new StringManager will be created and returned.- Parameters:
packageName
- The package name- Returns:
- The instance associated with the given package and the default Locale
-
getManager
public static final StringManager getManager(java.lang.String packageName, java.util.Locale locale)
Get the StringManager for a particular package and Locale. If a manager for a package/Locale combination already exists, it will be reused, else a new StringManager will be created and returned.- Parameters:
packageName
- The package namelocale
- The Locale- Returns:
- The instance associated with the given package and Locale
-
-