< prev index next >

src/java.base/share/classes/sun/util/cldr/CLDRLocaleProviderAdapter.java

Print this page

        

*** 43,52 **** --- 43,53 ---- import java.util.ServiceConfigurationError; import java.util.Set; import java.util.StringTokenizer; import java.util.concurrent.ConcurrentHashMap; import java.util.spi.CalendarDataProvider; + import java.util.spi.CalendarNameProvider; import java.util.spi.TimeZoneNameProvider; import sun.util.locale.provider.JRELocaleProviderAdapter; import sun.util.locale.provider.LocaleDataMetaInfo; import sun.util.locale.provider.LocaleProviderAdapter;
*** 131,140 **** --- 132,159 ---- } return calendarDataProvider; } @Override + public CalendarNameProvider getCalendarNameProvider() { + if (calendarNameProvider == null) { + CalendarNameProvider provider = AccessController.doPrivileged( + (PrivilegedAction<CalendarNameProvider>) () + -> new CLDRCalendarNameProviderImpl( + getAdapterType(), + getLanguageTagSet("FormatData"))); + + synchronized (this) { + if (calendarNameProvider == null) { + calendarNameProvider = provider; + } + } + } + return calendarNameProvider; + } + + @Override public CollatorProvider getCollatorProvider() { return null; } @Override
*** 164,174 **** locs[index++] = Locale.forLanguageTag(tag); } return locs; } ! private Locale applyAliases(Locale loc) { if (langAliasesMap.isEmpty()) { langAliasesMap = baseMetaInfo.getLanguageAliasMap(); } Locale locale = langAliasesCache.get(loc); if (locale == null) { --- 183,193 ---- locs[index++] = Locale.forLanguageTag(tag); } return locs; } ! private static Locale applyAliases(Locale loc) { if (langAliasesMap.isEmpty()) { langAliasesMap = baseMetaInfo.getLanguageAliasMap(); } Locale locale = langAliasesCache.get(loc); if (locale == null) {
*** 262,284 **** return parent; } /** ! * This method returns equivalent CLDR supported locale for zh-HK, ! * no, no-NO locales so that COMPAT locales do not precede ! * those locales during ResourceBundle search path. */ private static Locale getEquivalentLoc(Locale locale) { switch (locale.toString()) { - case "zh_HK": - return Locale.forLanguageTag("zh-Hant-HK"); case "no": case "no_NO": return Locale.forLanguageTag("nb"); } ! return locale; } @Override public boolean isSupportedProviderLocale(Locale locale, Set<String> langtags) { return Locale.ROOT.equals(locale) --- 281,302 ---- return parent; } /** ! * This method returns equivalent CLDR supported locale ! * for no, no-NO locales so that COMPAT locales do not precede ! * those locales during ResourceBundle search path, also if an alias exists for a locale, ! * it returns equivalent locale, e.g for zh_HK it returns zh_Hant-HK. */ private static Locale getEquivalentLoc(Locale locale) { switch (locale.toString()) { case "no": case "no_NO": return Locale.forLanguageTag("nb"); } ! return applyAliases(locale); } @Override public boolean isSupportedProviderLocale(Locale locale, Set<String> langtags) { return Locale.ROOT.equals(locale)
< prev index next >