org.apache.struts.util

Class PropertyMessageResources

public class PropertyMessageResources extends MessageResources

Concrete subclass of MessageResources that reads message keys and corresponding strings from named property resources in the same manner that java.util.PropertyResourceBundle does. The base property defines the base property resource name, and must be specified.

IMPLEMENTATION NOTE - This class trades memory for speed by caching all messages located via generalizing the Locale under the original locale as well. This results in specific messages being stored in the message cache more than once, but improves response time on subsequent requests for the same locale + key combination.

Version: $Rev: 54929 $ $Date: 2004-10-16 17:38:42 +0100 (Sat, 16 Oct 2004) $

Field Summary
protected HashMaplocales
The set of locale keys for which we have already loaded messages, keyed by the value calculated in localeKey().
protected static Loglog
The Log instance for this class.
protected HashMapmessages
The cache of messages we have accumulated over time, keyed by the value calculated in messageKey().
Constructor Summary
PropertyMessageResources(MessageResourcesFactory factory, String config)
Construct a new PropertyMessageResources according to the specified parameters.
PropertyMessageResources(MessageResourcesFactory factory, String config, boolean returnNull)
Construct a new PropertyMessageResources according to the specified parameters.
Method Summary
StringgetMessage(Locale locale, String key)
Returns a text message for the specified key, for the default Locale.
protected voidloadLocale(String localeKey)
Load the messages associated with the specified Locale key.

Field Detail

locales

protected HashMap locales
The set of locale keys for which we have already loaded messages, keyed by the value calculated in localeKey().

log

protected static final Log log
The Log instance for this class.

messages

protected HashMap messages
The cache of messages we have accumulated over time, keyed by the value calculated in messageKey().

Constructor Detail

PropertyMessageResources

public PropertyMessageResources(MessageResourcesFactory factory, String config)
Construct a new PropertyMessageResources according to the specified parameters.

Parameters: factory The MessageResourcesFactory that created us config The configuration parameter for this MessageResources

PropertyMessageResources

public PropertyMessageResources(MessageResourcesFactory factory, String config, boolean returnNull)
Construct a new PropertyMessageResources according to the specified parameters.

Parameters: factory The MessageResourcesFactory that created us config The configuration parameter for this MessageResources returnNull The returnNull property we should initialize with

Method Detail

getMessage

public String getMessage(Locale locale, String key)
Returns a text message for the specified key, for the default Locale. A null string result will be returned by this method if no relevant message resource is found for this key or Locale, if the returnNull property is set. Otherwise, an appropriate error message will be returned.

This method must be implemented by a concrete subclass.

Parameters: locale The requested message Locale, or null for the system default Locale key The message key to look up

Returns: text message for the specified key and locale

loadLocale

protected void loadLocale(String localeKey)
Load the messages associated with the specified Locale key. For this implementation, the config property should contain a fully qualified package and resource name, separated by periods, of a series of property resources to be loaded from the class loader that created this PropertyMessageResources instance. This is exactly the same name format you would use when utilizing the java.util.PropertyResourceBundle class.

Parameters: localeKey Locale key for the messages to be retrieved

Copyright B) 2000-2009 - The Apache Software Foundation