Class MessageResources

java.lang.Object
org.apache.struts.util.MessageResources
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
PropertyMessageResources

public abstract class MessageResources extends Object implements Serializable
General purpose abstract class that describes an API for retrieving Locale-sensitive messages from underlying resource locations of an unspecified design, and optionally utilizing the MessageFormat class to produce internationalized messages with parametric replacement.

Calls to getMessage() variants without a Locale argument are presumed to be requesting a message string in the default Locale for this JVM.

Calls to getMessage() with an unknown key, or an unknown Locale will return null if the returnNull property is set to true. Otherwise, a suitable error message will be returned instead.

IMPLEMENTATION NOTE - Classes that extend this class must be Serializable so that instances may be used in distributable application server environments.

Version:
$Rev$ $Date: 2005-08-29 23:57:50 -0400 (Mon, 29 Aug 2005) $
See Also:
  • Field Details

    • defaultFactory

      protected static MessageResourcesFactory defaultFactory
      The default MessageResourcesFactory used to create MessageResources instances.
    • config

      protected String config
      The configuration parameter used to initialize this MessageResources.
    • defaultLocale

      protected Locale defaultLocale
      The default Locale for our environment.
    • factory

      protected MessageResourcesFactory factory
      The MessageResourcesFactory that created this instance.
    • formats

      protected HashMap<String,MessageFormat> formats
      The set of previously created MessageFormat objects, keyed by the key computed in messageKey().
    • returnNull

      protected boolean returnNull
      Indicate is a null is returned instead of an error message string when an unknown Locale or key is requested.
  • Constructor Details

    • MessageResources

      public MessageResources(MessageResourcesFactory factory, String config)
      Construct a new MessageResources according to the specified parameters.
      Parameters:
      factory - The MessageResourcesFactory that created us
      config - The configuration parameter for this MessageResources
    • MessageResources

      public MessageResources(MessageResourcesFactory factory, String config, boolean returnNull)
      Construct a new MessageResources 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 Details

    • getConfig

      public String getConfig()
      The configuration parameter used to initialize this MessageResources.
      Returns:
      parameter used to initialize this MessageResources
    • getFactory

      public MessageResourcesFactory getFactory()
      The MessageResourcesFactory that created this instance.
      Returns:
      MessageResourcesFactory that created instance
    • getReturnNull

      public boolean getReturnNull()
      Indicates that a null is returned instead of an error message string if an unknown Locale or key is requested.
      Returns:
      true if null is returned if unknown key or locale is requested
    • setReturnNull

      public void setReturnNull(boolean returnNull)
      Indicates that a null is returned instead of an error message string if an unknown Locale or key is requested.
      Parameters:
      returnNull - true Indicates that a null is returned if an unknown Locale or key is requested.
    • isEscape

      public boolean isEscape()
      Indicates whether 'escape processing' should be performed on the error message string.
      Since:
      Struts 1.2.8
    • setEscape

      public void setEscape(boolean escape)
      Set whether 'escape processing' should be performed on the error message string.
      Since:
      Struts 1.2.8
    • getMessage

      public String getMessage(String key)
      Returns a text message for the specified key, for the default Locale.
      Parameters:
      key - The message key to look up
    • getMessage

      public String getMessage(String key, Object[] args)
      Returns a text message after parametric replacement of the specified parameter placeholders.
      Parameters:
      key - The message key to look up
      args - An array of replacement parameters for placeholders
    • getMessage

      public String getMessage(String key, Object arg0)
      Returns a text message after parametric replacement of the specified parameter placeholders.
      Parameters:
      key - The message key to look up
      arg0 - The replacement for placeholder {0} in the message
    • getMessage

      public String getMessage(String key, Object arg0, Object arg1)
      Returns a text message after parametric replacement of the specified parameter placeholders.
      Parameters:
      key - The message key to look up
      arg0 - The replacement for placeholder {0} in the message
      arg1 - The replacement for placeholder {1} in the message
    • getMessage

      public String getMessage(String key, Object arg0, Object arg1, Object arg2)
      Returns a text message after parametric replacement of the specified parameter placeholders.
      Parameters:
      key - The message key to look up
      arg0 - The replacement for placeholder {0} in the message
      arg1 - The replacement for placeholder {1} in the message
      arg2 - The replacement for placeholder {2} in the message
    • getMessage

      public String getMessage(String key, Object arg0, Object arg1, Object arg2, Object arg3)
      Returns a text message after parametric replacement of the specified parameter placeholders.
      Parameters:
      key - The message key to look up
      arg0 - The replacement for placeholder {0} in the message
      arg1 - The replacement for placeholder {1} in the message
      arg2 - The replacement for placeholder {2} in the message
      arg3 - The replacement for placeholder {3} in the message
    • getMessage

      public abstract 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
    • getMessage

      public String getMessage(Locale locale, String key, Object[] args)
      Returns a text message after parametric replacement of the specified parameter placeholders. A null string result will be returned by this method if no resource bundle has been configured.
      Parameters:
      locale - The requested message Locale, or null for the system default Locale
      key - The message key to look up
      args - An array of replacement parameters for placeholders
    • getMessage

      public String getMessage(Locale locale, String key, Object arg0)
      Returns a text message after parametric replacement of the specified parameter placeholders. A null string result will never be returned by this method.
      Parameters:
      locale - The requested message Locale, or null for the system default Locale
      key - The message key to look up
      arg0 - The replacement for placeholder {0} in the message
    • getMessage

      public String getMessage(Locale locale, String key, Object arg0, Object arg1)
      Returns a text message after parametric replacement of the specified parameter placeholders. A null string result will never be returned by this method.
      Parameters:
      locale - The requested message Locale, or null for the system default Locale
      key - The message key to look up
      arg0 - The replacement for placeholder {0} in the message
      arg1 - The replacement for placeholder {1} in the message
    • getMessage

      public String getMessage(Locale locale, String key, Object arg0, Object arg1, Object arg2)
      Returns a text message after parametric replacement of the specified parameter placeholders. A null string result will never be returned by this method.
      Parameters:
      locale - The requested message Locale, or null for the system default Locale
      key - The message key to look up
      arg0 - The replacement for placeholder {0} in the message
      arg1 - The replacement for placeholder {1} in the message
      arg2 - The replacement for placeholder {2} in the message
    • getMessage

      public String getMessage(Locale locale, String key, Object arg0, Object arg1, Object arg2, Object arg3)
      Returns a text message after parametric replacement of the specified parameter placeholders. A null string result will never be returned by this method.
      Parameters:
      locale - The requested message Locale, or null for the system default Locale
      key - The message key to look up
      arg0 - The replacement for placeholder {0} in the message
      arg1 - The replacement for placeholder {1} in the message
      arg2 - The replacement for placeholder {2} in the message
      arg3 - The replacement for placeholder {3} in the message
    • isPresent

      public boolean isPresent(String key)
      Return true if there is a defined message for the specified key in the system default locale.
      Parameters:
      key - The message key to look up
    • isPresent

      public boolean isPresent(Locale locale, String key)
      Return true if there is a defined message for the specified key in the specified Locale.
      Parameters:
      locale - The requested message Locale, or null for the system default Locale
      key - The message key to look up
    • escape

      protected String escape(String string)
      Escape any single quote characters that are included in the specified message string.
      Parameters:
      string - The string to be escaped
    • localeKey

      protected String localeKey(Locale locale)
      Compute and return a key to be used in caching information by a Locale. NOTE - The locale key for the default Locale in our environment is a zero length String.
      Parameters:
      locale - The locale for which a key is desired
    • messageKey

      protected String messageKey(Locale locale, String key)
      Compute and return a key to be used in caching information by Locale and message key.
      Parameters:
      locale - The Locale for which this format key is calculated
      key - The message key for which this format key is calculated
    • messageKey

      protected String messageKey(String localeKey, String key)
      Compute and return a key to be used in caching information by locale key and message key.
      Parameters:
      localeKey - The locale key for which this cache key is calculated
      key - The message key for which this cache key is calculated
    • getMessageResources

      public static MessageResources getMessageResources(String config)
      Create and return an instance of MessageResources for the created by the default MessageResourcesFactory.
      Parameters:
      config - Configuration parameter for this message bundle.
    • log

      public void log(String message)
      Log a message to the Writer that has been configured for our use.
      Parameters:
      message - The message to be logged
    • log

      public void log(String message, Throwable throwable)
      Log a message and exception to the Writer that has been configured for our use.
      Parameters:
      message - The message to be logged
      throwable - The exception to be logged