21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package sun.util.locale.provider;
27
28 import java.text.spi.BreakIteratorProvider;
29 import java.text.spi.CollatorProvider;
30 import java.text.spi.DateFormatProvider;
31 import java.text.spi.DateFormatSymbolsProvider;
32 import java.text.spi.DecimalFormatSymbolsProvider;
33 import java.text.spi.NumberFormatProvider;
34 import java.util.Arrays;
35 import java.util.HashSet;
36 import java.util.Locale;
37 import java.util.Set;
38 import java.util.concurrent.ConcurrentHashMap;
39 import java.util.concurrent.ConcurrentMap;
40 import java.util.spi.CalendarDataProvider;
41 import java.util.spi.CurrencyNameProvider;
42 import java.util.spi.LocaleNameProvider;
43 import java.util.spi.LocaleServiceProvider;
44 import java.util.spi.TimeZoneNameProvider;
45 import sun.util.resources.LocaleData;
46
47 /**
48 * An abstract parent class for the
49 * HostLocaleProviderAdapter/SPILocaleProviderAdapter.
50 *
51 * @author Naoto Sato
52 * @author Masayoshi Okutsu
53 */
54 public abstract class AuxLocaleProviderAdapter extends LocaleProviderAdapter {
55 /**
56 * SPI implementations map
57 */
58 private ConcurrentMap<Class<? extends LocaleServiceProvider>, LocaleServiceProvider> providersMap =
59 new ConcurrentHashMap<>();
60
118 @Override
119 public CurrencyNameProvider getCurrencyNameProvider() {
120 return getLocaleServiceProvider(CurrencyNameProvider.class);
121 }
122
123 @Override
124 public LocaleNameProvider getLocaleNameProvider() {
125 return getLocaleServiceProvider(LocaleNameProvider.class);
126 }
127
128 @Override
129 public TimeZoneNameProvider getTimeZoneNameProvider() {
130 return getLocaleServiceProvider(TimeZoneNameProvider.class);
131 }
132
133 @Override
134 public CalendarDataProvider getCalendarDataProvider() {
135 return getLocaleServiceProvider(CalendarDataProvider.class);
136 }
137
138
139 @Override
140 public LocaleResources getLocaleResources(Locale locale) {
141 return null;
142 }
143
144 @Override
145 public LocaleData getLocaleData() {
146 return null;
147 }
148
149 private static Locale[] availableLocales = null;
150
151 @Override
152 public Locale[] getAvailableLocales() {
153 if (availableLocales == null) {
154 Set<Locale> avail = new HashSet<>();
155 for (Class<? extends LocaleServiceProvider> c :
156 LocaleServiceProviderPool.spiClasses) {
157 LocaleServiceProvider lsp = getLocaleServiceProvider(c);
|
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package sun.util.locale.provider;
27
28 import java.text.spi.BreakIteratorProvider;
29 import java.text.spi.CollatorProvider;
30 import java.text.spi.DateFormatProvider;
31 import java.text.spi.DateFormatSymbolsProvider;
32 import java.text.spi.DecimalFormatSymbolsProvider;
33 import java.text.spi.NumberFormatProvider;
34 import java.util.Arrays;
35 import java.util.HashSet;
36 import java.util.Locale;
37 import java.util.Set;
38 import java.util.concurrent.ConcurrentHashMap;
39 import java.util.concurrent.ConcurrentMap;
40 import java.util.spi.CalendarDataProvider;
41 import java.util.spi.CalendarNameProvider;
42 import java.util.spi.CurrencyNameProvider;
43 import java.util.spi.LocaleNameProvider;
44 import java.util.spi.LocaleServiceProvider;
45 import java.util.spi.TimeZoneNameProvider;
46 import sun.util.resources.LocaleData;
47
48 /**
49 * An abstract parent class for the
50 * HostLocaleProviderAdapter/SPILocaleProviderAdapter.
51 *
52 * @author Naoto Sato
53 * @author Masayoshi Okutsu
54 */
55 public abstract class AuxLocaleProviderAdapter extends LocaleProviderAdapter {
56 /**
57 * SPI implementations map
58 */
59 private ConcurrentMap<Class<? extends LocaleServiceProvider>, LocaleServiceProvider> providersMap =
60 new ConcurrentHashMap<>();
61
119 @Override
120 public CurrencyNameProvider getCurrencyNameProvider() {
121 return getLocaleServiceProvider(CurrencyNameProvider.class);
122 }
123
124 @Override
125 public LocaleNameProvider getLocaleNameProvider() {
126 return getLocaleServiceProvider(LocaleNameProvider.class);
127 }
128
129 @Override
130 public TimeZoneNameProvider getTimeZoneNameProvider() {
131 return getLocaleServiceProvider(TimeZoneNameProvider.class);
132 }
133
134 @Override
135 public CalendarDataProvider getCalendarDataProvider() {
136 return getLocaleServiceProvider(CalendarDataProvider.class);
137 }
138
139 @Override
140 public CalendarNameProvider getCalendarNameProvider() {
141 return getLocaleServiceProvider(CalendarNameProvider.class);
142 }
143
144 @Override
145 public LocaleResources getLocaleResources(Locale locale) {
146 return null;
147 }
148
149 @Override
150 public LocaleData getLocaleData() {
151 return null;
152 }
153
154 private static Locale[] availableLocales = null;
155
156 @Override
157 public Locale[] getAvailableLocales() {
158 if (availableLocales == null) {
159 Set<Locale> avail = new HashSet<>();
160 for (Class<? extends LocaleServiceProvider> c :
161 LocaleServiceProviderPool.spiClasses) {
162 LocaleServiceProvider lsp = getLocaleServiceProvider(c);
|