org.apache.commons.lang3.text
Class ExtendedMessageFormat

java.lang.Object
  extended by java.text.Format
      extended by java.text.MessageFormat
          extended by org.apache.commons.lang3.text.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:

Since:
2.4
Version:
$Id: ExtendedMessageFormat.java 1144929 2011-07-10 18:26:16Z ggregory $
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.text.MessageFormat
MessageFormat.Field
 
Constructor Summary
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<String,? extends FormatFactory> registry)
          Create a new ExtendedMessageFormat.
ExtendedMessageFormat(String pattern, Map<String,? extends FormatFactory> registry)
          Create a new ExtendedMessageFormat for the default locale.
 
Method Summary
 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
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

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<String,? extends FormatFactory> 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<String,? extends FormatFactory> 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

toPattern

public String toPattern()

Overrides:
toPattern in class MessageFormat

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

setFormatByArgumentIndex

public void setFormatByArgumentIndex(int argumentIndex,
                                     Format newFormat)
Throws UnsupportedOperationException - see class Javadoc for details.

Overrides:
setFormatByArgumentIndex in class MessageFormat
Parameters:
argumentIndex - argument index
newFormat - the new format
Throws:
UnsupportedOperationException

setFormats

public void setFormats(Format[] newFormats)
Throws UnsupportedOperationException - see class Javadoc for details.

Overrides:
setFormats in class MessageFormat
Parameters:
newFormats - new formats
Throws:
UnsupportedOperationException

setFormatsByArgumentIndex

public void setFormatsByArgumentIndex(Format[] newFormats)
Throws UnsupportedOperationException - see class Javadoc for details.

Overrides:
setFormatsByArgumentIndex in class MessageFormat
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 class MessageFormat
Parameters:
obj - the object to compare to
Returns:
true if this object equals the other, otherwise false

hashCode

public int hashCode()
Return the hashcode.

Overrides:
hashCode in class MessageFormat
Returns:
the hashcode


Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.