org.zkoss.text
Class MessageFormats

java.lang.Object
  extended by org.zkoss.text.MessageFormats

public class MessageFormats
extends Object

The message formatting relevant utilities.

See also java.text.MessageFormat.

Author:
tomyeh

Nested Class Summary
static class MessageFormats.NameInfo
          The name info returned by parseByName(java.lang.String)).
 
Constructor Summary
MessageFormats()
           
 
Method Summary
static StringBuffer format(StringBuffer result, String pattern, Object[] args)
          Creates a MessageFormat with the given pattern and uses it to format the given arguments, by use of StringBuffer and Locales.getCurrent().
static StringBuffer format(StringBuffer result, String pattern, Object[] args, Locale locale)
          Creates a MessageFormat with the given pattern and uses it to format the given arguments, by use of StringBuffer.
static String format(String pattern, Object[] args)
          Creates a MessageFormat with the given pattern and uses it to format the given arguments, by use of Locales.getCurrent().
static String format(String pattern, Object[] args, Locale locale)
          Creates a MessageFormat with the given pattern and uses it to format the given arguments.
static String formatByName(String pattern, Map mapping)
          Formats a pattern by substituting names with values found in the giving map, by use of Locales.getCurrent().
static String formatByName(String pattern, Map mapping, Locale locale)
          Formats a pattern by substituting names, enclosing with {}, with values found in the giving map.
static MessageFormats.NameInfo parseByName(String pattern)
          Parses a pattern and converts it to the format of java.text.MessageFormat.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MessageFormats

public MessageFormats()
Method Detail

format

public static final String format(String pattern,
                                  Object[] args,
                                  Locale locale)
Creates a MessageFormat with the given pattern and uses it to format the given arguments.

An extension to java.text.MessageFormat.format by allowing to specify a Locale.

Parameters:
locale - the locale; null for Locales.getCurrent()

format

public static final String format(String pattern,
                                  Object[] args)
Creates a MessageFormat with the given pattern and uses it to format the given arguments, by use of Locales.getCurrent().

Note: java.text.MessageFormat.format uses Locale.getDefault, which might not be corrent in a multi-user environment.


format

public static final StringBuffer format(StringBuffer result,
                                        String pattern,
                                        Object[] args,
                                        Locale locale)
Creates a MessageFormat with the given pattern and uses it to format the given arguments, by use of StringBuffer.

If you want to catenate a sequence of formated string, use this method.


format

public static final StringBuffer format(StringBuffer result,
                                        String pattern,
                                        Object[] args)
Creates a MessageFormat with the given pattern and uses it to format the given arguments, by use of StringBuffer and Locales.getCurrent().


parseByName

public static final MessageFormats.NameInfo parseByName(String pattern)
Parses a pattern and converts it to the format of java.text.MessageFormat. Names are the first element of a substring enclosing with {} in the pattern.

Example: "{a} is {b,number} of {a}" will return new NameInfo("{0} is {1,number} of {0}", {"a", "b"}).

See Also:
formatByName(String, Map, Locale)

formatByName

public static final String formatByName(String pattern,
                                        Map mapping,
                                        Locale locale)
Formats a pattern by substituting names, enclosing with {}, with values found in the giving map.

This is an extension to java.text.MessageFormat. The only difference is that this method use arbitrary name instead of a number. For example, it use {name} instead of {0}. The quotation rule and formating pattern are the same as java.text.MessageFormat. Example, {var,number,$'#',###}.

It actually uses parseByName(java.lang.String) to convert names to numbers, and then passes to java.text.MessageFormat.

Parameters:
locale - the locale; null for Locales.getCurrent()
Throws:
IllegalArgumentException - if the pattern is invalid
See Also:
parseByName(java.lang.String)

formatByName

public static final String formatByName(String pattern,
                                        Map mapping)
Formats a pattern by substituting names with values found in the giving map, by use of Locales.getCurrent().

See Also:
parseByName(java.lang.String)


Copyright © 2011. All Rights Reserved.