diff --git a/jdk/src/share/classes/java/text/MessageFormat.java b/jdk/src/share/classes/java/text/MessageFormat.java index ec5c7ff0d65..41623c48ed0 100644 --- a/jdk/src/share/classes/java/text/MessageFormat.java +++ b/jdk/src/share/classes/java/text/MessageFormat.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -93,73 +93,65 @@ import java.util.Locale; * currency * percent * SubformatPattern - * - * String: - * StringPartopt - * String StringPart - * - * StringPart: - * '' - * ' QuotedString ' - * UnquotedString - * - * SubformatPattern: - * SubformatPatternPartopt - * SubformatPattern SubformatPatternPart - * - * SubFormatPatternPart: - * ' QuotedPattern ' - * UnquotedPattern * * - *
- * Within a String, "''" represents a single
- * quote. A QuotedString can contain arbitrary characters
- * except single quotes; the surrounding single quotes are removed.
- * An UnquotedString can contain arbitrary characters
- * except single quotes and left curly brackets. Thus, a string that
- * should result in the formatted message "'{0}'" can be written as
- * "'''{'0}''" or "'''{0}'''".
- *
- * Within a SubformatPattern, different rules apply.
- * A QuotedPattern can contain arbitrary characters
- * except single quotes; but the surrounding single quotes are
- * not removed, so they may be interpreted by the
- * subformat. For example, "{1,number,$'#',##}" will
- * produce a number format with the pound-sign quoted, with a result
- * such as: "$#31,45".
- * An UnquotedPattern can contain arbitrary characters
- * except single quotes, but curly braces within it must be balanced.
- * For example, "ab {0} de" and "ab '}' de"
- * are valid subformat patterns, but "ab {0'}' de" and
- * "ab } de" are not.
+ *
Within a String, a pair of single quotes can be used to
+ * quote any arbitrary characters except single quotes. For example,
+ * pattern string "'{0}'" represents string
+ * "{0}", not a FormatElement. A single quote itself
+ * must be represented by doubled single quotes {@code ''} throughout a
+ * String. For example, pattern string "'{''}'" is
+ * interpreted as a sequence of '{ (start of quoting and a
+ * left curly brace), '' (a single quote), and
+ * }' (a right curly brace and end of quoting),
+ * not '{' and '}' (quoted left and
+ * right curly braces): representing string "{'}",
+ * not "{}".
+ *
+ *
A SubformatPattern is interpreted by its corresponding
+ * subformat, and subformat-dependent pattern rules apply. For example,
+ * pattern string "{1,number,$'#',##}"
+ * (SubformatPattern with underline) will produce a number format
+ * with the pound-sign quoted, with a result such as: {@code
+ * "$#31,45"}. Refer to each {@code Format} subclass documentation for
+ * details.
+ *
+ *
Any unmatched quote is treated as closed at the end of the given + * pattern. For example, pattern string {@code "'{0}"} is treated as + * pattern {@code "'{0}'"}. + * + *
Any curly braces within an unquoted pattern must be balanced. For
+ * example, "ab {0} de" and "ab '}' de" are
+ * valid patterns, but "ab {0'}' de", "ab } de"
+ * and "''{''" are not.
+ *
*
*
* The ArgumentIndex value is a non-negative integer written
- * using the digits '0' through '9', and represents an index into the
- * arguments array passed to the format methods
- * or the result array returned by the parse methods.
+ * using the digits {@code '0'} through {@code '9'}, and represents an index into the
+ * {@code arguments} array passed to the {@code format} methods
+ * or the result array returned by the {@code parse} methods.
*
* The FormatType and FormatStyle values are used to create
- * a Format instance for the format element. The following
- * table shows how the values map to Format instances. Combinations not
+ * a {@code Format} instance for the format element. The following
+ * table shows how the values map to {@code Format} instances. Combinations not
* shown in the table are illegal. A SubformatPattern must
- * be a valid pattern string for the Format subclass used.
+ * be a valid pattern string for the {@code Format} subclass used.
*
*
| Format Type - * | Format Style - * | Subformat Created + * | FormatType + * | FormatStyle + * | Subformat Created * |
|---|---|---|---|---|---|
| (none) * | (none) @@ -167,61 +159,61 @@ import java.util.Locale; * | ||||
number
* | (none) - * | NumberFormat.getInstance(getLocale())
+ * | {@link NumberFormat#getInstance(Locale) NumberFormat.getInstance}{@code (getLocale())} * | ||
integer
- * | NumberFormat.getIntegerInstance(getLocale())
+ * | {@link NumberFormat#getIntegerInstance(Locale) NumberFormat.getIntegerInstance}{@code (getLocale())} * | |||
currency
- * | NumberFormat.getCurrencyInstance(getLocale())
+ * | {@link NumberFormat#getCurrencyInstance(Locale) NumberFormat.getCurrencyInstance}{@code (getLocale())} * | |||
percent
- * | NumberFormat.getPercentInstance(getLocale())
+ * | {@link NumberFormat#getPercentInstance(Locale) NumberFormat.getPercentInstance}{@code (getLocale())} * | |||
| SubformatPattern - * | new DecimalFormat(subformatPattern, DecimalFormatSymbols.getInstance(getLocale()))
+ * | {@code new} {@link DecimalFormat#DecimalFormat(String,DecimalFormatSymbols) DecimalFormat}{@code (subformatPattern,} {@link DecimalFormatSymbols#getInstance(Locale) DecimalFormatSymbols.getInstance}{@code (getLocale()))} * | |||
date
* | (none) - * | DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())
+ * | {@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#DEFAULT}{@code , getLocale())} * | ||
short
- * | DateFormat.getDateInstance(DateFormat.SHORT, getLocale())
+ * | {@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#SHORT}{@code , getLocale())} * | |||
medium
- * | DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())
+ * | {@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#DEFAULT}{@code , getLocale())} * | |||
long
- * | DateFormat.getDateInstance(DateFormat.LONG, getLocale())
+ * | {@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#LONG}{@code , getLocale())} * | |||
full
- * | DateFormat.getDateInstance(DateFormat.FULL, getLocale())
+ * | {@link DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance}{@code (}{@link DateFormat#FULL}{@code , getLocale())} * | |||
| SubformatPattern - * | new SimpleDateFormat(subformatPattern, getLocale())
+ * | {@code new} {@link SimpleDateFormat#SimpleDateFormat(String,Locale) SimpleDateFormat}{@code (subformatPattern, getLocale())} * | |||
time
* | (none) - * | DateFormat.getTimeInstance(DateFormat.DEFAULT, getLocale())
+ * | {@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#DEFAULT}{@code , getLocale())} * | ||
short
- * | DateFormat.getTimeInstance(DateFormat.SHORT, getLocale())
+ * | {@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#SHORT}{@code , getLocale())} * | |||
medium
- * | DateFormat.getTimeInstance(DateFormat.DEFAULT, getLocale())
+ * | {@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#DEFAULT}{@code , getLocale())} * | |||
long
- * | DateFormat.getTimeInstance(DateFormat.LONG, getLocale())
+ * | {@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#LONG}{@code , getLocale())} * | |||
full
- * | DateFormat.getTimeInstance(DateFormat.FULL, getLocale())
+ * | {@link DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance}{@code (}{@link DateFormat#FULL}{@code , getLocale())} * | |||
| SubformatPattern - * | new SimpleDateFormat(subformatPattern, getLocale())
+ * | {@code new} {@link SimpleDateFormat#SimpleDateFormat(String,Locale) SimpleDateFormat}{@code (subformatPattern, getLocale())} * | |||
choice
* | SubformatPattern - * | new ChoiceFormat(subformatPattern)
+ * | {@code new} {@link ChoiceFormat#ChoiceFormat(String) ChoiceFormat}{@code (subformatPattern)} * |
* @@ -321,7 +313,7 @@ import java.util.Locale; * * *
- * Likewise, parsing with a MessageFormat object using patterns containing + * Likewise, parsing with a {@code MessageFormat} object using patterns containing * multiple occurrences of the same argument would return the last match. For * example, *
@@ -343,7 +335,11 @@ import java.util.Locale; * @see Format * @see NumberFormat * @see DecimalFormat + * @see DecimalFormatSymbols * @see ChoiceFormat + * @see DateFormat + * @see SimpleDateFormat + * * @author Mark Davis */