Class ExtendedMessageFormat

  • All Implemented Interfaces:
    Serializable, Cloneable

    public class ExtendedMessageFormat
    extends MessageFormat
    Extends java.text.MessageFormat to allow pluggable/additional formatting options for embedded format elements. Client code should specify a registry of FormatFactory instances associated with String format names. This registry will be consulted when the format elements are parsed from the message pattern. In this way custom patterns can be specified, and the formats supported by java.text.MessageFormat can be overridden at the format and/or format style level (see MessageFormat). A "format element" embedded in the message pattern is specified (()? signifies optionality):
    {argument-number(,format-name(,format-style)?)?}

    format-name and format-style values are trimmed of surrounding whitespace in the manner of java.text.MessageFormat. If format-name denotes FormatFactory formatFactoryInstance in registry, a Format matching format-name and format-style is requested from formatFactoryInstance. If this is successful, the Format found is used for this format element.

    NOTICE:: The various subformat mutator methods are considered unnecessary; they exist on the parent class to allow the type of customization which it is the job of this class to provide in a configurable fashion. These methods have thus been disabled and will throw UnsupportedOperationException if called.

    Limitations inherited from java.text.MessageFormat:

    • When using "choice" subformats, support for nested formatting instructions is limited to that provided by the base class.
    • Thread-safety of Formats, including MessageFormat and thus ExtendedMessageFormat, is not guaranteed.

    Since:
    2.4
    Version:
    $Id: ExtendedMessageFormat.java 1057427 2011-01-11 00:28:01Z niallp $
    See Also:
    Serialized Form
    • Constructor Detail

      • ExtendedMessageFormat

        public ExtendedMessageFormat​(String pattern)
        Create a new ExtendedMessageFormat for the default locale.
        Parameters:
        pattern - the pattern to use, not null
        Throws:
        IllegalArgumentException - in case of a bad pattern.
      • ExtendedMessageFormat

        public ExtendedMessageFormat​(String pattern,
                                     Locale locale)
        Create a new ExtendedMessageFormat.
        Parameters:
        pattern - the pattern to use, not null
        locale - the locale to use, not null
        Throws:
        IllegalArgumentException - in case of a bad pattern.
      • ExtendedMessageFormat

        public ExtendedMessageFormat​(String pattern,
                                     Map registry)
        Create a new ExtendedMessageFormat for the default locale.
        Parameters:
        pattern - the pattern to use, not null
        registry - the registry of format factories, may be null
        Throws:
        IllegalArgumentException - in case of a bad pattern.
      • ExtendedMessageFormat

        public ExtendedMessageFormat​(String pattern,
                                     Locale locale,
                                     Map registry)
        Create a new ExtendedMessageFormat.
        Parameters:
        pattern - the pattern to use, not null
        locale - the locale to use, not null
        registry - the registry of format factories, may be null
        Throws:
        IllegalArgumentException - in case of a bad pattern.
    • Method Detail

      • applyPattern

        public final void applyPattern​(String pattern)
        Apply the specified pattern.
        Overrides:
        applyPattern in class MessageFormat
        Parameters:
        pattern - String
      • setFormat

        public void setFormat​(int formatElementIndex,
                              Format newFormat)
        Throws UnsupportedOperationException - see class Javadoc for details.
        Overrides:
        setFormat in class MessageFormat
        Parameters:
        formatElementIndex - format element index
        newFormat - the new format
        Throws:
        UnsupportedOperationException
      • equals

        public boolean equals​(Object obj)
        Check if this extended message format is equal to another object.
        Overrides:
        equals in class MessageFormat
        Parameters:
        obj - the object to compare to
        Returns:
        true if this object equals the other, otherwise false
        Since:
        2.6
      • hashCode

        public int hashCode()
        Return the hashcode.
        Overrides:
        hashCode in class MessageFormat
        Returns:
        the hashcode
        Since:
        2.6