Package 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:
Serializable
,Cloneable
public class ExtendedMessageFormat extends MessageFormat
Extendsjava.text.MessageFormat
to allow pluggable/additional formatting options for embedded format elements. Client code should specify a registry ofFormatFactory
instances associated withString
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 byjava.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 denotesFormatFactory formatFactoryInstance
inregistry
, aFormat
matching format-name and format-style is requested fromformatFactoryInstance
. If this is successful, theFormat
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, includingMessageFormat
and thusExtendedMessageFormat
, 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
MessageFormat.Field
-
-
Constructor Summary
Constructors Constructor Description ExtendedMessageFormat(String pattern)
Create a new ExtendedMessageFormat for the default locale.ExtendedMessageFormat(String pattern, Locale locale)
Create a new ExtendedMessageFormat.ExtendedMessageFormat(String pattern, Locale locale, Map registry)
Create a new ExtendedMessageFormat.ExtendedMessageFormat(String pattern, Map registry)
Create a new ExtendedMessageFormat for the default locale.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
applyPattern(String pattern)
Apply the specified pattern.boolean
equals(Object obj)
Check if this extended message format is equal to another object.int
hashCode()
Return the hashcode.void
setFormat(int formatElementIndex, Format newFormat)
Throws UnsupportedOperationException - see class Javadoc for details.void
setFormatByArgumentIndex(int argumentIndex, Format newFormat)
Throws UnsupportedOperationException - see class Javadoc for details.void
setFormats(Format[] newFormats)
Throws UnsupportedOperationException - see class Javadoc for details.void
setFormatsByArgumentIndex(Format[] newFormats)
Throws UnsupportedOperationException - see class Javadoc for details.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
-
-
-
-
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 nulllocale
- 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 nullregistry
- 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 nulllocale
- the locale to use, not nullregistry
- the registry of format factories, may be null- Throws:
IllegalArgumentException
- in case of a bad pattern.
-
-
Method Detail
-
toPattern
public String toPattern()
- Overrides:
toPattern
in classMessageFormat
-
applyPattern
public final void applyPattern(String pattern)
Apply the specified pattern.- Overrides:
applyPattern
in classMessageFormat
- Parameters:
pattern
- String
-
setFormat
public void setFormat(int formatElementIndex, Format newFormat)
Throws UnsupportedOperationException - see class Javadoc for details.- Overrides:
setFormat
in classMessageFormat
- Parameters:
formatElementIndex
- format element indexnewFormat
- the new format- Throws:
UnsupportedOperationException
-
setFormatByArgumentIndex
public void setFormatByArgumentIndex(int argumentIndex, Format newFormat)
Throws UnsupportedOperationException - see class Javadoc for details.- Overrides:
setFormatByArgumentIndex
in classMessageFormat
- Parameters:
argumentIndex
- argument indexnewFormat
- the new format- Throws:
UnsupportedOperationException
-
setFormats
public void setFormats(Format[] newFormats)
Throws UnsupportedOperationException - see class Javadoc for details.- Overrides:
setFormats
in classMessageFormat
- Parameters:
newFormats
- new formats- Throws:
UnsupportedOperationException
-
setFormatsByArgumentIndex
public void setFormatsByArgumentIndex(Format[] newFormats)
Throws UnsupportedOperationException - see class Javadoc for details.- Overrides:
setFormatsByArgumentIndex
in classMessageFormat
- Parameters:
newFormats
- new formats- Throws:
UnsupportedOperationException
-
equals
public boolean equals(Object obj)
Check if this extended message format is equal to another object.- Overrides:
equals
in classMessageFormat
- 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 classMessageFormat
- Returns:
- the hashcode
- Since:
- 2.6
-
-