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.ArrayList;
35 import java.util.Collections;
36 import java.util.List;
37 import java.util.Locale;
38 import java.util.Map;
39 import java.util.ResourceBundle;
40 import java.util.Set;
41 import java.util.concurrent.ConcurrentHashMap;
42 import java.util.concurrent.ConcurrentMap;
43 import java.util.spi.CalendarDataProvider;
44 import java.util.spi.CalendarNameProvider;
45 import java.util.spi.CurrencyNameProvider;
46 import java.util.spi.LocaleNameProvider;
47 import java.util.spi.LocaleServiceProvider;
48 import java.util.spi.TimeZoneNameProvider;
49 import sun.security.action.GetPropertyAction;
50 import sun.util.spi.CalendarProvider;
51
52 /**
53 * The LocaleProviderAdapter abstract class.
54 *
55 * @author Naoto Sato
56 * @author Masayoshi Okutsu
57 */
58 public abstract class LocaleProviderAdapter {
59 /**
60 * Adapter type.
61 */
62 public static enum Type {
63 JRE("sun.util.locale.provider.JRELocaleProviderAdapter", "sun.util.resources", "sun.text.resources"),
64 CLDR("sun.util.cldr.CLDRLocaleProviderAdapter", "sun.util.resources.cldr", "sun.text.resources.cldr"),
65 SPI("sun.util.locale.provider.SPILocaleProviderAdapter"),
66 HOST("sun.util.locale.provider.HostLocaleProviderAdapter"),
67 FALLBACK("sun.util.locale.provider.FallbackLocaleProviderAdapter", "sun.util.resources", "sun.text.resources");
68
69 private final String CLASSNAME;
411 * @return a CalendarDataProvider
412 */
413 public abstract CalendarDataProvider getCalendarDataProvider();
414
415 /**
416 * Returns a CalendarNameProvider for this LocaleProviderAdapter, or null if no
417 * CalendarNameProvider is available.
418 *
419 * @return a CalendarNameProvider
420 */
421 public abstract CalendarNameProvider getCalendarNameProvider();
422
423 /**
424 * Returns a CalendarProvider for this LocaleProviderAdapter, or null if no
425 * CalendarProvider is available.
426 *
427 * @return a CalendarProvider
428 */
429 public abstract CalendarProvider getCalendarProvider();
430
431 public abstract LocaleResources getLocaleResources(Locale locale);
432
433 public abstract Locale[] getAvailableLocales();
434
435 private static final LocaleProviderAdapter NONEXISTENT_ADAPTER = new NonExistentAdapter();
436 private static final class NonExistentAdapter extends FallbackLocaleProviderAdapter {
437 @Override
438 public LocaleProviderAdapter.Type getAdapterType() {
439 return null;
440 }
441
442 private NonExistentAdapter() {};
443 }
444 }
|
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.ArrayList;
35 import java.util.Collections;
36 import java.util.List;
37 import java.util.Locale;
38 import java.util.Map;
39 import java.util.ResourceBundle;
40 import java.util.Set;
41 import java.util.concurrent.ConcurrentHashMap;
42 import java.util.concurrent.ConcurrentMap;
43 import java.util.spi.CalendarDataProvider;
44 import java.util.spi.CalendarNameProvider;
45 import java.util.spi.CurrencyNameProvider;
46 import java.util.spi.LocaleNameProvider;
47 import java.util.spi.LocaleServiceProvider;
48 import java.util.spi.TimeZoneNameProvider;
49 import sun.security.action.GetPropertyAction;
50 import sun.text.spi.JavaTimeDateTimePatternProvider;
51 import sun.util.spi.CalendarProvider;
52
53 /**
54 * The LocaleProviderAdapter abstract class.
55 *
56 * @author Naoto Sato
57 * @author Masayoshi Okutsu
58 */
59 public abstract class LocaleProviderAdapter {
60 /**
61 * Adapter type.
62 */
63 public static enum Type {
64 JRE("sun.util.locale.provider.JRELocaleProviderAdapter", "sun.util.resources", "sun.text.resources"),
65 CLDR("sun.util.cldr.CLDRLocaleProviderAdapter", "sun.util.resources.cldr", "sun.text.resources.cldr"),
66 SPI("sun.util.locale.provider.SPILocaleProviderAdapter"),
67 HOST("sun.util.locale.provider.HostLocaleProviderAdapter"),
68 FALLBACK("sun.util.locale.provider.FallbackLocaleProviderAdapter", "sun.util.resources", "sun.text.resources");
69
70 private final String CLASSNAME;
412 * @return a CalendarDataProvider
413 */
414 public abstract CalendarDataProvider getCalendarDataProvider();
415
416 /**
417 * Returns a CalendarNameProvider for this LocaleProviderAdapter, or null if no
418 * CalendarNameProvider is available.
419 *
420 * @return a CalendarNameProvider
421 */
422 public abstract CalendarNameProvider getCalendarNameProvider();
423
424 /**
425 * Returns a CalendarProvider for this LocaleProviderAdapter, or null if no
426 * CalendarProvider is available.
427 *
428 * @return a CalendarProvider
429 */
430 public abstract CalendarProvider getCalendarProvider();
431
432 /**
433 * Returns a JavaTimeDateTimePatternProvider for this LocaleProviderAdapter,
434 * or null if no JavaTimeDateTimePatternProvider is available.
435 *
436 * @return a JavaTimeDateTimePatternProvider
437 */
438 public abstract JavaTimeDateTimePatternProvider getJavaTimeDateTimePatternProvider();
439
440 public abstract LocaleResources getLocaleResources(Locale locale);
441
442 public abstract Locale[] getAvailableLocales();
443
444 private static final LocaleProviderAdapter NONEXISTENT_ADAPTER = new NonExistentAdapter();
445 private static final class NonExistentAdapter extends FallbackLocaleProviderAdapter {
446 @Override
447 public LocaleProviderAdapter.Type getAdapterType() {
448 return null;
449 }
450
451 private NonExistentAdapter() {};
452 }
453 }
|