Class ExtendedMessageFormat

java.lang.Object
java.text.Format
java.text.MessageFormat
org.apache.commons.text.ExtendedMessageFormat
All Implemented Interfaces:
Serializable, Cloneable

Extends 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 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):
{}<i>argument-number</i><b>(</b>{@code ,}<i>format-name</i><b> (</b>{@code ,}<i>format-style</i><b>)?)?</b>{@code }

format-name and format-style values are trimmed of surrounding whitespace in the manner of 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 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:
1.0
See Also: