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
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, includingMessageFormatand thusExtendedMessageFormat, is not guaranteed.
- Since:
- 2.4
- Version:
- $Id: ExtendedMessageFormat.java 1057427 2011-01-11 00:28:01Z niallp $
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.text.MessageFormat
MessageFormat.Field -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionExtendedMessageFormat(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
Modifier and TypeMethodDescriptionprivate StrBuilderappendQuotedString(String pattern, ParsePosition pos, StrBuilder appendTo, boolean escapingOn) Consume a quoted string, adding it toappendToif specified.final voidapplyPattern(String pattern) Apply the specified pattern.private booleancontainsElements(Collection coll) Learn whether the specified Collection contains non-null elements.booleanCheck if this extended message format is equal to another object.private FormatGet a custom format from a format description.private voidgetQuotedString(String pattern, ParsePosition pos, boolean escapingOn) Consume quoted string onlyinthashCode()Return the hashcode.private StringinsertFormats(String pattern, ArrayList customPatterns) Insert formats back into the pattern for toPattern() support.private ParsePositionnext(ParsePosition pos) Convenience method to advance parse position by 1private StringparseFormatDescription(String pattern, ParsePosition pos) Parse the format component of a format element.private intreadArgumentIndex(String pattern, ParsePosition pos) Read the argument index from the current format elementprivate voidseekNonWs(String pattern, ParsePosition pos) Consume whitespace from the current parse position.voidThrows UnsupportedOperationException - see class Javadoc for details.voidsetFormatByArgumentIndex(int argumentIndex, Format newFormat) Throws UnsupportedOperationException - see class Javadoc for details.voidsetFormats(Format[] newFormats) Throws UnsupportedOperationException - see class Javadoc for details.voidsetFormatsByArgumentIndex(Format[] newFormats) Throws UnsupportedOperationException - see class Javadoc for details.Methods inherited from class java.text.MessageFormat
clone, format, format, format, formatToCharacterIterator, getFormats, getFormatsByArgumentIndex, getLocale, parse, parse, parseObject, setLocaleMethods inherited from class java.text.Format
format, parseObject
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
HASH_SEED
private static final int HASH_SEED- See Also:
-
DUMMY_PATTERN
- See Also:
-
ESCAPED_QUOTE
- See Also:
-
START_FMT
private static final char START_FMT- See Also:
-
END_FE
private static final char END_FE- See Also:
-
START_FE
private static final char START_FE- See Also:
-
QUOTE
private static final char QUOTE- See Also:
-
toPattern
-
registry
-
-
Constructor Details
-
ExtendedMessageFormat
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
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
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
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 Details
-
toPattern
- Overrides:
toPatternin classMessageFormat
-
applyPattern
Apply the specified pattern.- Overrides:
applyPatternin classMessageFormat- Parameters:
pattern- String
-
setFormat
Throws UnsupportedOperationException - see class Javadoc for details.- Overrides:
setFormatin classMessageFormat- Parameters:
formatElementIndex- format element indexnewFormat- the new format- Throws:
UnsupportedOperationException
-
setFormatByArgumentIndex
Throws UnsupportedOperationException - see class Javadoc for details.- Overrides:
setFormatByArgumentIndexin classMessageFormat- Parameters:
argumentIndex- argument indexnewFormat- the new format- Throws:
UnsupportedOperationException
-
setFormats
Throws UnsupportedOperationException - see class Javadoc for details.- Overrides:
setFormatsin classMessageFormat- Parameters:
newFormats- new formats- Throws:
UnsupportedOperationException
-
setFormatsByArgumentIndex
Throws UnsupportedOperationException - see class Javadoc for details.- Overrides:
setFormatsByArgumentIndexin classMessageFormat- Parameters:
newFormats- new formats- Throws:
UnsupportedOperationException
-
equals
Check if this extended message format is equal to another object.- Overrides:
equalsin 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:
hashCodein classMessageFormat- Returns:
- the hashcode
- Since:
- 2.6
-
getFormat
Get a custom format from a format description.- Parameters:
desc- String- Returns:
- Format
-
readArgumentIndex
Read the argument index from the current format element- Parameters:
pattern- pattern to parsepos- current parse position- Returns:
- argument index
-
parseFormatDescription
Parse the format component of a format element.- Parameters:
pattern- string to parsepos- current parse position- Returns:
- Format description String
-
insertFormats
Insert formats back into the pattern for toPattern() support.- Parameters:
pattern- sourcecustomPatterns- The custom patterns to re-insert, if any- Returns:
- full pattern
-
seekNonWs
Consume whitespace from the current parse position.- Parameters:
pattern- String to readpos- current position
-
next
Convenience method to advance parse position by 1- Parameters:
pos- ParsePosition- Returns:
pos
-
appendQuotedString
private StrBuilder appendQuotedString(String pattern, ParsePosition pos, StrBuilder appendTo, boolean escapingOn) Consume a quoted string, adding it toappendToif specified.- Parameters:
pattern- pattern to parsepos- current parse positionappendTo- optional StringBuffer to appendescapingOn- whether to process escaped quotes- Returns:
appendTo
-
getQuotedString
Consume quoted string only- Parameters:
pattern- pattern to parsepos- current parse positionescapingOn- whether to process escaped quotes
-
containsElements
Learn whether the specified Collection contains non-null elements.- Parameters:
coll- to check- Returns:
trueif some Object was found,falseotherwise.
-