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 } |