ExtendedMessageFormat (Lang 2.6)
Date: 2019-01-01

org.apache.commons.lang.text

## Class ExtendedMessageFormat

- java.lang.Object
- - java.text.Format
  - - java.text.MessageFormat
    - - org.apache.commons.lang.text.ExtendedMessageFormat

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable

      public class ExtendedMessageFormat
      extends java.text.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 `Format`s, 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

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class java.text.MessageFormat

      `java.text.MessageFormat.Field`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExtendedMessageFormat(java.lang.String pattern)` Create a new ExtendedMessageFormat for the default locale.
    `ExtendedMessageFormat(java.lang.String pattern, java.util.Locale locale)` Create a new ExtendedMessageFormat.
    `ExtendedMessageFormat(java.lang.String pattern, java.util.Locale locale, java.util.Map registry)` Create a new ExtendedMessageFormat.
    `ExtendedMessageFormat(java.lang.String pattern, java.util.Map registry)` Create a new ExtendedMessageFormat for the default locale.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `applyPattern(java.lang.String pattern)` Apply the specified pattern.
    `boolean` | `equals(java.lang.Object obj)` Check if this extended message format is equal to another object.
    `int` | `hashCode()` Return the hashcode.
    `void` | `setFormat(int formatElementIndex, java.text.Format newFormat)` Throws UnsupportedOperationException - see class Javadoc for details.
    `void` | `setFormatByArgumentIndex(int argumentIndex, java.text.Format newFormat)` Throws UnsupportedOperationException - see class Javadoc for details.
    `void` | `setFormats(java.text.Format[] newFormats)` Throws UnsupportedOperationException - see class Javadoc for details.
    `void` | `setFormatsByArgumentIndex(java.text.Format[] newFormats)` Throws UnsupportedOperationException - see class Javadoc for details.
    `java.lang.String` | `toPattern()`

    - ### Methods inherited from class java.text.MessageFormat

      `clone, format, format, format, formatToCharacterIterator, getFormats, getFormatsByArgumentIndex, getLocale, parse, parse, parseObject, setLocale`

    - ### Methods inherited from class java.text.Format

      `format, parseObject`

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ExtendedMessageFormat

          public ExtendedMessageFormat(java.lang.String pattern)

      Create a new ExtendedMessageFormat for the default locale.
      Parameters:
        `pattern` - the pattern to use, not null
      Throws:
        `java.lang.IllegalArgumentException` - in case of a bad pattern.

    - #### ExtendedMessageFormat

          public ExtendedMessageFormat(java.lang.String pattern,
                                       java.util.Locale locale)

      Create a new ExtendedMessageFormat.
      Parameters:
        `pattern` - the pattern to use, not null
        `locale` - the locale to use, not null
      Throws:
        `java.lang.IllegalArgumentException` - in case of a bad pattern.

    - #### ExtendedMessageFormat

          public ExtendedMessageFormat(java.lang.String pattern,
                                       java.util.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:
        `java.lang.IllegalArgumentException` - in case of a bad pattern.

    - #### ExtendedMessageFormat

          public ExtendedMessageFormat(java.lang.String pattern,
                                       java.util.Locale locale,
                                       java.util.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:
        `java.lang.IllegalArgumentException` - in case of a bad pattern.

  - ### Method Detail

    - #### toPattern

          public java.lang.String toPattern()

      Overrides:
        `toPattern` in class `java.text.MessageFormat`

    - #### applyPattern

          public final void applyPattern(java.lang.String pattern)

      Apply the specified pattern.
      Overrides:
        `applyPattern` in class `java.text.MessageFormat`
      Parameters:
        `pattern` - String

    - #### setFormat

          public void setFormat(int formatElementIndex,
                                java.text.Format newFormat)

      Throws UnsupportedOperationException - see class Javadoc for details.
      Overrides:
        `setFormat` in class `java.text.MessageFormat`
      Parameters:
        `formatElementIndex` - format element index
        `newFormat` - the new format
      Throws:
        `java.lang.UnsupportedOperationException`

    - #### setFormatByArgumentIndex

          public void setFormatByArgumentIndex(int argumentIndex,
                                               java.text.Format newFormat)

      Throws UnsupportedOperationException - see class Javadoc for details.
      Overrides:
        `setFormatByArgumentIndex` in class `java.text.MessageFormat`
      Parameters:
        `argumentIndex` - argument index
        `newFormat` - the new format
      Throws:
        `java.lang.UnsupportedOperationException`

    - #### setFormats

          public void setFormats(java.text.Format[] newFormats)

      Throws UnsupportedOperationException - see class Javadoc for details.
      Overrides:
        `setFormats` in class `java.text.MessageFormat`
      Parameters:
        `newFormats` - new formats
      Throws:
        `java.lang.UnsupportedOperationException`

    - #### setFormatsByArgumentIndex

          public void setFormatsByArgumentIndex(java.text.Format[] newFormats)

      Throws UnsupportedOperationException - see class Javadoc for details.
      Overrides:
        `setFormatsByArgumentIndex` in class `java.text.MessageFormat`
      Parameters:
        `newFormats` - new formats
      Throws:
        `java.lang.UnsupportedOperationException`

    - #### equals

          public boolean equals(java.lang.Object obj)

      Check if this extended message format is equal to another object.
      Overrides:
        `equals` in class `java.text.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 `java.text.MessageFormat`
      Returns:
        the hashcode
      Since:
        2.6

Copyright © 2001-2019 - Apache Software Foundation