jdk/src/java.base/share/classes/sun/util/locale/provider/LocaleDataMetaInfo-XLocales.java.template
changeset 26360 697f70835528
parent 25996 4aa9eb909760
equal deleted inserted replaced
26359:50d45d375866 26360:697f70835528
    28 /*
    28 /*
    29  * This class contains a map which records the locale list string for
    29  * This class contains a map which records the locale list string for
    30  * each resource in sun.util.resources & sun.text.resources.
    30  * each resource in sun.util.resources & sun.text.resources.
    31  * It is used to avoid loading non-existent localized resources so that
    31  * It is used to avoid loading non-existent localized resources so that
    32  * jar files won't be opened unnecessary to look up them.
    32  * jar files won't be opened unnecessary to look up them.
    33  *
       
    34  * @since 1.6
       
    35  */
    33  */
    36 package sun.util.locale.provider;
    34 package #Package#;
    37 
    35 
    38 import java.util.HashMap;
    36 import java.util.HashMap;
       
    37 import java.util.Map;
       
    38 import sun.util.locale.provider.LocaleDataMetaInfo;
       
    39 import static sun.util.locale.provider.LocaleProviderAdapter.Type;
    39 
    40 
       
    41 public class #Lang#LocaleDataMetaInfo implements LocaleDataMetaInfo {
    40 
    42 
    41 public class LocaleDataMetaInfo {
    43     private static final Map<String, String> resourceNameToLocales = new HashMap<>(9);
    42 
       
    43     private static final HashMap<String, String> resourceNameToLocales =
       
    44         new HashMap<String, String>(7);
       
    45 
       
    46 
    44 
    47     static {
    45     static {
    48         /* During JDK build time, #XXX_YYY# will be replaced by a string contain all the locales
    46         /* During JDK build time, #XXX_YYY# will be replaced by a string contain all the locales
    49            supported by the resource.
    47            supported by the resource.
    50 
    48 
    51            Don't remove the space character between " and #. That is put there purposely so that
    49            Don't remove the space character between " and #. That is put there purposely so that
    52            look up locale string such as "en" could be based on if it contains " en ".
    50            look up locale string such as "en" could be based on if it contains " en ".
    53         */
    51         */
    54         resourceNameToLocales.put("FormatData",
    52         resourceNameToLocales.put("FormatData",
    55                                   " #FormatData_ENLocales# | #FormatData_NonENLocales# ");
    53                                   " #FormatData_Locales# ");
    56 
    54 
    57         resourceNameToLocales.put("CollationData",
    55         resourceNameToLocales.put("CollationData",
    58                                   " #CollationData_ENLocales# | #CollationData_NonENLocales# ");
    56                                   " #CollationData_Locales# ");
    59 
    57 
    60         resourceNameToLocales.put("BreakIteratorInfo",
    58         resourceNameToLocales.put("BreakIteratorInfo",
    61                                   " #BreakIteratorInfo_ENLocales# | #BreakIteratorInfo_NonENLocales# ");
    59                                   " #BreakIteratorInfo_Locales# ");
    62 
    60 
    63         resourceNameToLocales.put("BreakIteratorRules",
    61         resourceNameToLocales.put("BreakIteratorRules",
    64                                   " #BreakIteratorRules_ENLocales# | #BreakIteratorRules_NonENLocales# ");
    62                                   " #BreakIteratorRules_Locales# ");
    65 
    63 
    66         resourceNameToLocales.put("TimeZoneNames",
    64         resourceNameToLocales.put("TimeZoneNames",
    67                                   " #TimeZoneNames_ENLocales# | #TimeZoneNames_NonENLocales# ");
    65                                   " #TimeZoneNames_Locales# ");
    68 
    66 
    69         resourceNameToLocales.put("LocaleNames",
    67         resourceNameToLocales.put("LocaleNames",
    70                                   " #LocaleNames_ENLocales# | #LocaleNames_NonENLocales# ");
    68                                   " #LocaleNames_Locales# ");
    71 
    69 
    72         resourceNameToLocales.put("CurrencyNames",
    70         resourceNameToLocales.put("CurrencyNames",
    73                                   " #CurrencyNames_ENLocales# | #CurrencyNames_NonENLocales# ");
    71                                   " #CurrencyNames_Locales# ");
    74 
    72 
    75         resourceNameToLocales.put("CalendarData",
    73         resourceNameToLocales.put("CalendarData",
    76                                   " #CalendarData_ENLocales# | #CalendarData_NonENLocales# ");
    74                                   " #CalendarData_Locales# ");
    77 
    75 
    78         resourceNameToLocales.put("AvailableLocales",
    76         resourceNameToLocales.put("AvailableLocales",
    79                                   " #AvailableLocales_ENLocales# | #AvailableLocales_NonENLocales# ");
    77                                   " #AvailableLocales_Locales# ");
    80     }
    78     }
    81 
    79 
    82     /*
    80     /*
       
    81      * Gets the supported locales string based on the availability of
       
    82      * locale data resource bundles for each resource name.
       
    83      *
    83      * @param resourceName the resource name
    84      * @param resourceName the resource name
    84      * @return the supported locale string for the passed in resource.
    85      * @return the supported locale string for the passed in resource.
    85      */
    86      */
    86     public static String getSupportedLocaleString(String resourceName) {
    87     public static String getSupportedLocaleString(String resourceName) {
    87         return resourceNameToLocales.get(resourceName);
    88         return resourceNameToLocales.getOrDefault(resourceName, "");
       
    89     }
       
    90 
       
    91     @Override
       
    92     public Type getType() {
       
    93         return Type.JRE;
       
    94 }
       
    95 
       
    96     @Override
       
    97     public String availableLanguageTags(String category) {
       
    98         return getSupportedLocaleString(category);
    88     }
    99     }
    89 }
   100 }