Class Template

All Implemented Interfaces:
Serializable, Cloneable

public class Template extends MessageFormat
String template.

It is extended from MessageFormat to allow parameters to be substituted by name as well as by position.

The following example, using MessageFormat, yields "Happy 64th birthday, Ringo!":

MessageFormat f = new MessageFormat("Happy {0,number}th birthday, {1}!");
Object[] args = {64, "Ringo"};
System.out.println(f.format(args);

Here is the same example using a Template and named parameters:

Template f = new Template("Happy {age,number}th birthday, {name}!");
Map<Object, Object> args = new HashMap<Object, Object>();
args.put("age", 64);
args.put("name", "Ringo");
System.out.println(f.format(args);

Using a Template you can also use positional parameters:

Template f = new Template("Happy {age,number}th birthday, {name}!");
Object[] args = {64, "Ringo"};
System.out.println(f.format(args);

Or a hybrid; here, one argument is specified by name, another by position:

Template f = new Template("Happy {age,number}th birthday, {name}!");
Map<Object, Object> args = new HashMap<Object, Object>();
args.put(0, 64);
args.put("name", "Ringo");
System.out.println(f.format(args);
See Also:
  • Method Details

    • of

      public static Template of(String pattern)
      Creates a Template for the default locale and the specified pattern.
      Parameters:
      pattern - the pattern for this message format
      Throws:
      IllegalArgumentException - if the pattern is invalid
    • of

      public static Template of(String pattern, Locale locale)
      Creates a Template for the specified locale and pattern.
      Parameters:
      pattern - the pattern for this message format
      locale - the locale for this message format
      Throws:
      IllegalArgumentException - if the pattern is invalid
    • format

      public String format(Map<Object,Object> argMap)
      Formats a set of arguments to produce a string.

      Arguments may appear in the map using named keys (of type String), or positional keys (0-based ordinals represented either as type String or Integer).

      Parameters:
      argMap - A map containing the arguments as (key, value) pairs
      Returns:
      Formatted string.
      Throws:
      IllegalArgumentException - if the Format cannot format the given object
    • formatByName

      public static String formatByName(String pattern, Map<Object,Object> argMap)
      Creates a Template with the given pattern and uses it to format the given arguments. This is equivalent to
      Template(pattern).format(java.util.Map<java.lang.Object, java.lang.Object>)(args)
      Throws:
      IllegalArgumentException - if the pattern is invalid, or if an argument in the arguments array is not of the type expected by the format element(s) that use it.
    • getParameterNames

      public List<String> getParameterNames()
      Returns the names of the parameters, in the order that they appeared in the template string.
      Returns:
      List of parameter names