src/share/classes/sun/util/locale/provider/AuxLocaleProviderAdapter.java

Print this page




  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);