Author: ceki Date: Thu Dec 22 20:13:59 2005 New Revision: 467 Modified: slf4j/trunk/src/java/org/slf4j/impl/MessageFormatter.java slf4j/trunk/tests/src/java/org/slf4j/impl/MessageFormatterTest.java Log:
improved docs Modified: slf4j/trunk/src/java/org/slf4j/impl/MessageFormatter.java ============================================================================== --- slf4j/trunk/src/java/org/slf4j/impl/MessageFormatter.java (original) +++ slf4j/trunk/src/java/org/slf4j/impl/MessageFormatter.java Thu Dec 22 20:13:59 2005 @@ -35,11 +35,10 @@ /** - * Formats messages according to very simple rules. - * See [EMAIL PROTECTED] #format(String, Object)} and + * Formats messages according to very simple rules. See [EMAIL PROTECTED] #format(String, Object)} and * [EMAIL PROTECTED] #format(String, Object, Object)} for more details. * - * @author <a href="http://www.qos.ch/log4j/">Ceki Gülcü</a> + * @author Ceki Gülcü */ public class MessageFormatter { static final char DELIM_START = '{'; @@ -54,6 +53,13 @@ * <p> * The {} pair is called the formatting element. It serves to designate the * location where the argument needs to be inserted within the pattern. + * <p> + * In the rare case where you need to place the '{' or '}' in the message pattern + * but do not want them to be interpreted as a formatting element, then you can + * espace the '{' character with '\', that is the backslash character. Only the + * first '{' should be escaped. For example, + * <code>MessageFormatter.format("File name is \\{{}}.", "App folder.zip");</code> + * will return the string "File name is {App folder.zip}.". * * @param messagePattern The message pattern which will be parsed and formatted * @param argument The argument to be inserted instead of the formatting element @@ -70,10 +76,19 @@ * <p> * For example, <code>MessageFormatter.format("Hi {}. My name is {}.", * "there", "David");</code> will return the string "Hi there. My name is David.". + * * <p> * The '{}' pair is called a formatting element. It serves to designate the * location where the arguments need to be inserted within the message pattern. * + * <p> + * In the rare case where you need to place the '{' or '}' in the message pattern + * but do not want them to be interpreted as a formatting element, then you can + * espace the '{' character with '\', that is the backslash character. Only the + * first '{' should be escaped. For example, + * <code>MessageFormatter.format("File name is \\{{}}.", "App folder.zip");</code> + * will return the string "File name is {App folder.zip}.". + * @param messagePattern The message pattern which will be parsed and formatted * @param arg1 The first argument to replace the first formatting element * @param arg2 The second argument to replace the second formatting element @@ -83,6 +98,15 @@ return arrayFormat(messagePattern, new Object[] {arg1, arg2}); } + /** + * Same principle as the [EMAIL PROTECTED] #format(String, Object)} and + * [EMAIL PROTECTED] #format(String, Object, Object)} methods except that + * any number of arguments can be passed in an array. + * + * @param messagePattern + * @param argArray + * @return + */ public static String arrayFormat(String messagePattern, Object[] argArray) { if(messagePattern == null) { return null; Modified: slf4j/trunk/tests/src/java/org/slf4j/impl/MessageFormatterTest.java ============================================================================== --- slf4j/trunk/tests/src/java/org/slf4j/impl/MessageFormatterTest.java (original) +++ slf4j/trunk/tests/src/java/org/slf4j/impl/MessageFormatterTest.java Thu Dec 22 20:13:59 2005 @@ -82,6 +82,9 @@ result = MessageFormatter.format("\\{}Escaped", i3); assertEquals("{}Escaped", result); + + result = MessageFormatter.format("File name is \\{{}}.", "App folder.zip"); + assertEquals("File name is {App folder.zip}.", result); } public void test2Param() { @@ -148,6 +151,7 @@ result = MessageFormatter.arrayFormat("Val1={}, Val2={", ia); assertEquals("Val1=1, Val2={", result); + } } _______________________________________________ dev mailing list [email protected] http://slf4j.org/mailman/listinfo/dev
