Hi Masayoshi, It is about adding Currency variants to Slovenia . We hope there is a method to get the currency symbol before it joins European Union. As described in test attached. I ported a patch to openjdk 2 weeks ago, which contains following modification:
/////////////////////////////////////////// diff -r e7d125f2575b src/share/classes/java/util/Currency.java --- a/src/share/classes/java/util/Currency.java Sun Aug 12 22:56:45 2012 +0100 +++ b/src/share/classes/java/util/Currency.java Thu Aug 16 11:05:57 2012 +0800 @@ -352,6 +352,20 @@ */ public static Currency getInstance(Locale locale) { String country = locale.getCountry(); + String variant = locale.getVariant(); + if ("EURO".equals(variant)) + return getInstance("EUR"); + if ("PREEURO".equals(variant)) { + /* getNumberFormatData(locale) is used here to get the FormatData's + * resource bundle from which the value of the Currency property can + * be retrieved. getNumberFormatData(locale) is not specific to + * NumberFormat. It returns the FormatData's resource bundle for the + * given locale and so is used here. */ + ResourceBundle rb = LocaleData.getNumberFormatData(locale); + String CurrencyCode = rb.getString("Currency"); + return getInstance(CurrencyCode); + } + if (country == null) { throw new NullPointerException(); } /////////////////////////////////////////// And it came across RFE: Locale Data Deployment Enhancements . So, how can I make it work again ? And by the way, how do you think about adding this variants to openjdk ? On Tue, Aug 28, 2012 at 11:50 AM, Masayoshi Okutsu < masayoshi.oku...@oracle.com> wrote: > Hi Sean, > > LocaleData is a sun private class. It was changed to support different > locale data sources, such as the platform locale data and CLDR. Please use > the public APIs, such as DecimalFormatSymbols, to get locale-dependent > resources. We may change the LocaleData and its related classes further. > > Is there any reason that you need to use LocaleData? > > Thanks, > Masayoshi > > > On 8/28/2012 12:39 PM, Sean Chou wrote: > >> Hello , >> >> I noticed that LocaleData class changed a lot static methods to >> instance methods. I have a simple question about how to rewrite this >> invocation: "ResourceBundle rb = LocaleData.**getNumberFormatData(locale);' >> . >> Thanks in advance. >> >> > -- Best Regards, Sean Chou