<i18n dev> [15] RFR: 8227313: Support monetary grouping separator in DecimalFormat/DecimalFormatSymbols
naoto.sato at oracle.com
naoto.sato at oracle.com
Fri Jan 3 17:23:55 UTC 2020
Hi Joe,
I revised the changeset, as the cached hash code in DecimalFormatSymbols
needs to be recalculated when any of the relevant fields is mutated.
Here is the updated webrev:
http://cr.openjdk.java.net/~naoto/8227313/webrev.02/
Naoto
On 1/2/20 2:19 PM, Joe Wang wrote:
> Happy New Year, Naoto!
>
> Thanks for the explanation and changes. The changeset looks good to me.
>
> -Joe
>
> On 1/2/20 12:50 PM, naoto.sato at oracle.com wrote:
>> Hi Joe,
>>
>> Happy new year and thanks for your comments. Please see my replies below:
>>
>> On 12/23/19 5:20 PM, Joe Wang wrote:
>>> 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?
>>
>> Setting the custom monetary grouping separator will not affect the
>> existing normal grouping separator. I added the explanation in the
>> method description.
>>
>>>
>>> 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.
>>
>> Good point. Modified the compatibility risk from minimum to low with
>> the explanation.
>>
>>>
>>>
>>> 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.
>>
>> Consistency is important. I replaced all occurrences of "thousands
>> separator(s)" in DecimalFormat/DecimalFormatSymbols with "grouping
>> separator(s)."
>>
>> Here are the modified changeset:
>>
>> http://cr.openjdk.java.net/~naoto/8227313/webrev.01/
>>
>> as well as the modified CSR at the same URL.
>>
>> Naoto
>>
>>>
>>> Best, and have a great Christmas! :-)
>>> Joe
>>>
>>> On 12/20/19 12:57 PM, naoto.sato at 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
>>>
>
More information about the core-libs-dev
mailing list