public class MapFormat
extends java.text.Format
MessageFormat
but using string rather than numeric keys.
You might use use this formatter like this:
MapFormat.format("Hello {name}", map);
Or to have more control over it:
Map m = new HashMap ();
m.put ("KEY", "value");
MapFormat f = new MapFormat (m);
f.setLeftBrace ("__");
f.setRightBrace ("__");
String result = f.format ("the __KEY__ here");
MessageFormat,
Serialized Form| Constructor | Description |
|---|---|
MapFormat(java.util.Map arguments) |
Constructor.
|
| Modifier and Type | Method | Description |
|---|---|---|
java.lang.StringBuffer |
format(java.lang.Object pat,
java.lang.StringBuffer result,
java.text.FieldPosition fpos) |
Formats the parsed string by inserting table's values.
|
static java.lang.String |
format(java.lang.String pattern,
java.util.Map arguments) |
Designated method.
|
java.lang.String |
getLeftBrace() |
Returns string used as left brace
|
java.util.Map |
getMap() |
Returns argument map
|
java.lang.String |
getRightBrace() |
Returns string used as right brace
|
boolean |
isExactMatch() |
Test whether both brackets are required in the expression.
|
java.lang.String |
parse(java.lang.String source) |
Parses the string.
|
java.lang.Object |
parseObject(java.lang.String text,
java.text.ParsePosition status) |
Parses the string.
|
protected java.lang.Object |
processKey(java.lang.String key) |
Returns the value for given key.
|
java.lang.String |
processPattern(java.lang.String newPattern) |
Scans the pattern and prepares internal variables.
|
void |
setExactMatch(boolean flag) |
Specify whether both brackets are required in the expression.
|
void |
setLeftBrace(java.lang.String delimiter) |
Sets string used as left brace
|
void |
setMap(java.util.Map map) |
Sets argument map
This map should contain key-value pairs with key values used in
formatted string expression.
|
void |
setRightBrace(java.lang.String delimiter) |
Sets string used as right brace
|
void |
setThrowExceptionIfKeyWasNotFound(boolean flag) |
Specify whether formatter will throw exception if object for key was not found.
|
boolean |
willThrowExceptionIfKeyWasNotFound() |
Test whether formatter will throw exception if object for key was not found.
|
public MapFormat(java.util.Map arguments)
format(pattern, arguments) .arguments - keys and values to use in the formatpublic static java.lang.String format(java.lang.String pattern,
java.util.Map arguments)
pattern
for {} brackets, then parses enclosed string and replaces it
with argument's get() value.pattern - String to be parsed.arguments - Map with key-value pairs to replace.protected java.lang.Object processKey(java.lang.String key)
key - Key.public java.lang.String processPattern(java.lang.String newPattern)
throws java.lang.IllegalArgumentException
newPattern - String to be parsed.java.lang.IllegalArgumentException - if number of arguments exceeds BUFSIZE or
parser found unmatched brackets (this exception should be switched off
using setExactMatch(false)).public java.lang.StringBuffer format(java.lang.Object pat,
java.lang.StringBuffer result,
java.text.FieldPosition fpos)
format in class java.text.Formatpat - a string patternresult - Buffer to be used for result.fpos - positionpublic java.lang.Object parseObject(java.lang.String text,
java.text.ParsePosition status)
parseObject in class java.text.Formatpublic java.lang.String parse(java.lang.String source)
public boolean willThrowExceptionIfKeyWasNotFound()
public void setThrowExceptionIfKeyWasNotFound(boolean flag)
flag - If true, formatter throws IllegalArgumentException.public boolean isExactMatch()
public void setExactMatch(boolean flag)
flag - If true, formatter will ignore missing right bracket (default = false)public java.lang.String getLeftBrace()
public void setLeftBrace(java.lang.String delimiter)
delimiter - Left brace.public java.lang.String getRightBrace()
public void setRightBrace(java.lang.String delimiter)
delimiter - Right brace.public java.util.Map getMap()
public void setMap(java.util.Map map)
map - the argument mapBuilt on April 24 2018. | Portions Copyright 1997-2018 Oracle. All rights reserved.