src/java.base/share/classes/sun/util/locale/provider/LocaleDataMetaInfo-XLocales.java.template

Print this page

        

*** 28,89 **** /* * This class contains a map which records the locale list string for * each resource in sun.util.resources & sun.text.resources. * It is used to avoid loading non-existent localized resources so that * jar files won't be opened unnecessary to look up them. - * - * @since 1.6 */ ! package sun.util.locale.provider; import java.util.HashMap; ! public class LocaleDataMetaInfo { ! ! private static final HashMap<String, String> resourceNameToLocales = ! new HashMap<String, String>(7); ! static { /* During JDK build time, #XXX_YYY# will be replaced by a string contain all the locales supported by the resource. Don't remove the space character between " and #. That is put there purposely so that look up locale string such as "en" could be based on if it contains " en ". */ resourceNameToLocales.put("FormatData", ! " #FormatData_ENLocales# | #FormatData_NonENLocales# "); resourceNameToLocales.put("CollationData", ! " #CollationData_ENLocales# | #CollationData_NonENLocales# "); resourceNameToLocales.put("BreakIteratorInfo", ! " #BreakIteratorInfo_ENLocales# | #BreakIteratorInfo_NonENLocales# "); resourceNameToLocales.put("BreakIteratorRules", ! " #BreakIteratorRules_ENLocales# | #BreakIteratorRules_NonENLocales# "); resourceNameToLocales.put("TimeZoneNames", ! " #TimeZoneNames_ENLocales# | #TimeZoneNames_NonENLocales# "); resourceNameToLocales.put("LocaleNames", ! " #LocaleNames_ENLocales# | #LocaleNames_NonENLocales# "); resourceNameToLocales.put("CurrencyNames", ! " #CurrencyNames_ENLocales# | #CurrencyNames_NonENLocales# "); resourceNameToLocales.put("CalendarData", ! " #CalendarData_ENLocales# | #CalendarData_NonENLocales# "); resourceNameToLocales.put("AvailableLocales", ! " #AvailableLocales_ENLocales# | #AvailableLocales_NonENLocales# "); } /* * @param resourceName the resource name * @return the supported locale string for the passed in resource. */ public static String getSupportedLocaleString(String resourceName) { ! return resourceNameToLocales.get(resourceName); } } --- 28,100 ---- /* * This class contains a map which records the locale list string for * each resource in sun.util.resources & sun.text.resources. * It is used to avoid loading non-existent localized resources so that * jar files won't be opened unnecessary to look up them. */ ! package #Package#; import java.util.HashMap; + import java.util.Map; + import sun.util.locale.provider.LocaleDataMetaInfo; + import static sun.util.locale.provider.LocaleProviderAdapter.Type; + public class #Lang#LocaleDataMetaInfo implements LocaleDataMetaInfo { ! private static final Map<String, String> resourceNameToLocales = new HashMap<>(9); static { /* During JDK build time, #XXX_YYY# will be replaced by a string contain all the locales supported by the resource. Don't remove the space character between " and #. That is put there purposely so that look up locale string such as "en" could be based on if it contains " en ". */ resourceNameToLocales.put("FormatData", ! " #FormatData_Locales# "); resourceNameToLocales.put("CollationData", ! " #CollationData_Locales# "); resourceNameToLocales.put("BreakIteratorInfo", ! " #BreakIteratorInfo_Locales# "); resourceNameToLocales.put("BreakIteratorRules", ! " #BreakIteratorRules_Locales# "); resourceNameToLocales.put("TimeZoneNames", ! " #TimeZoneNames_Locales# "); resourceNameToLocales.put("LocaleNames", ! " #LocaleNames_Locales# "); resourceNameToLocales.put("CurrencyNames", ! " #CurrencyNames_Locales# "); resourceNameToLocales.put("CalendarData", ! " #CalendarData_Locales# "); resourceNameToLocales.put("AvailableLocales", ! " #AvailableLocales_Locales# "); } /* + * Gets the supported locales string based on the availability of + * locale data resource bundles for each resource name. + * * @param resourceName the resource name * @return the supported locale string for the passed in resource. */ public static String getSupportedLocaleString(String resourceName) { ! return resourceNameToLocales.getOrDefault(resourceName, ""); ! } ! ! @Override ! public Type getType() { ! return Type.JRE; ! } ! ! @Override ! public String availableLanguageTags(String category) { ! return getSupportedLocaleString(category); } }