Hi Naoto,
Is there a need for an APINote to note the relationship between the new
get/setMonetaryGroupingSeparator and get/setGroupingSeparator methods.
The new method did state it "May be different from {@code grouping
separator} in some locales", but that may be insufficient. For example,
does setting one method affects the other (seems it should since the
monetaryGroupingSeparator may be initialized by the groupingSeparator as
the impl shows)? If yes, how it's affected?
If no, is there a compatibility concern? In the current impl, the new
get method is used when "isCurrencyFormat" is true while the new set
method doesn't affect the existing 'groupingSeparator'. For existing
applications that have a custom grouping separator set through
setGroupingSeparator, it seems to me the custom separator won't be used
moving onto the new JDK impl.
A minor comment about the definition statement in the following:
Add the following new serializable field
in|java.text.DecimalFormatSymbols|class:
|/** * The grouping separator used when formatting currency values. * *
@serial * @since 15 */ private char monetaryGroupingSeparator;|
and that for the new get method:
Gets the character used for thousands separator for currencies.
While the meanings are clear, they were not as consistent as that
between the existing groupingSeparator and its get method, that is:
Character used for thousands separator.
and then the get method states:
Gets the character used for thousands separator.
But this is minor, your call whether to change it or not.
Best, and have a great Christmas! :-)
Joe
On 12/20/19 12:57 PM, naoto.s...@oracle.com wrote:
Hi,
Please review the fix for the following issue:
https://bugs.openjdk.java.net/browse/JDK-8227313
The proposed CSR and changeset are located at:
https://bugs.openjdk.java.net/browse/JDK-8235942
https://cr.openjdk.java.net/~naoto/8227313/webrev.00/
The change introduces the new monetary grouping separator in
DecimalFormatSymbols, and it is used if a DecimalFormat instance
designates currency formatting where its pattern includes the currency
symbol (U+00A5). The change makes use of the CLDR data which provides
two distinct grouping separators (one for generic, the other for
currency) in some locales. It also addresses the similar cases for the
decimal separator.
Naoto