src/windows/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java

Print this page
rev 7221 : imported patch 8013903


  31 import java.text.DecimalFormatSymbols;
  32 import java.text.NumberFormat;
  33 import java.text.SimpleDateFormat;
  34 import java.text.spi.DateFormatProvider;
  35 import java.text.spi.DateFormatSymbolsProvider;
  36 import java.text.spi.DecimalFormatSymbolsProvider;
  37 import java.text.spi.NumberFormatProvider;
  38 import java.util.Calendar;
  39 import java.util.Collections;
  40 import java.util.Currency;
  41 import java.util.HashSet;
  42 import java.util.Locale;
  43 import java.util.Map;
  44 import java.util.ResourceBundle.Control;
  45 import java.util.Set;
  46 import java.util.TimeZone;
  47 import java.util.concurrent.ConcurrentHashMap;
  48 import java.util.concurrent.ConcurrentMap;
  49 import java.util.concurrent.atomic.AtomicReferenceArray;
  50 import java.util.spi.CalendarDataProvider;
  51 import java.util.spi.CalendarNameProvider;
  52 import java.util.spi.CurrencyNameProvider;
  53 import java.util.spi.LocaleNameProvider;
  54 import sun.util.spi.CalendarProvider;
  55 
  56 /**
  57  * LocaleProviderdapter implementation for the Windows locale data.
  58  *
  59  * @author Naoto Sato
  60  */
  61 public class HostLocaleProviderAdapterImpl {
  62 
  63     // locale categories
  64     private static final int CAT_DISPLAY = 0;
  65     private static final int CAT_FORMAT  = 1;
  66 
  67     // NumberFormat styles
  68     private static final int NF_NUMBER   = 0;
  69     private static final int NF_CURRENCY = 1;
  70     private static final int NF_PERCENT  = 2;
  71     private static final int NF_INTEGER  = 3;


 345                 return isSupportedCalendarLocale(locale);
 346             }
 347 
 348             @Override
 349             public int getFirstDayOfWeek(Locale locale) {
 350                 int first = getCalendarDataValue(
 351                                  removeExtensions(locale).toLanguageTag(),
 352                                  CD_FIRSTDAYOFWEEK);
 353                 if (first != -1) {
 354                     return (first + 1) % 7 + 1;
 355                 } else {
 356                     return 0;
 357                 }
 358             }
 359 
 360             @Override
 361             public int getMinimalDaysInFirstWeek(Locale locale) {
 362                 return 0;
 363             }
 364         };
 365     }
 366 
 367     public static CalendarNameProvider getCalendarNameProvider() {
 368         return new CalendarNameProvider() {
 369             @Override
 370             public Locale[] getAvailableLocales() {
 371                 return getSupportedCalendarLocales();
 372             }
 373 
 374             @Override
 375             public boolean isSupportedLocale(Locale locale) {
 376                 return isSupportedCalendarLocale(locale);
 377             }
 378 
 379             @Override
 380             public String getDisplayName(String calType, int field, int value,
 381                                          int style, Locale locale) {
 382                 return null;
 383             }
 384 
 385             @Override
 386             public Map<String, Integer> getDisplayNames(String calType,
 387                                          int field, int style, Locale locale) {
 388                 return null;
 389             }
 390         };
 391     }
 392 
 393     public static CalendarProvider getCalendarProvider() {
 394         return new CalendarProvider() {
 395             @Override
 396             public Locale[] getAvailableLocales() {
 397                 return getSupportedCalendarLocales();
 398             }
 399 
 400             @Override
 401             public boolean isSupportedLocale(Locale locale) {
 402                 return isSupportedCalendarLocale(locale);
 403             }
 404 
 405             @Override
 406             public Calendar getInstance(TimeZone zone, Locale locale) {
 407                 return new Calendar.Builder()
 408                              .setLocale(getCalendarLocale(locale))
 409                              .setTimeZone(zone)
 410                              .setInstant(System.currentTimeMillis())




  31 import java.text.DecimalFormatSymbols;
  32 import java.text.NumberFormat;
  33 import java.text.SimpleDateFormat;
  34 import java.text.spi.DateFormatProvider;
  35 import java.text.spi.DateFormatSymbolsProvider;
  36 import java.text.spi.DecimalFormatSymbolsProvider;
  37 import java.text.spi.NumberFormatProvider;
  38 import java.util.Calendar;
  39 import java.util.Collections;
  40 import java.util.Currency;
  41 import java.util.HashSet;
  42 import java.util.Locale;
  43 import java.util.Map;
  44 import java.util.ResourceBundle.Control;
  45 import java.util.Set;
  46 import java.util.TimeZone;
  47 import java.util.concurrent.ConcurrentHashMap;
  48 import java.util.concurrent.ConcurrentMap;
  49 import java.util.concurrent.atomic.AtomicReferenceArray;
  50 import java.util.spi.CalendarDataProvider;

  51 import java.util.spi.CurrencyNameProvider;
  52 import java.util.spi.LocaleNameProvider;
  53 import sun.util.spi.CalendarProvider;
  54 
  55 /**
  56  * LocaleProviderdapter implementation for the Windows locale data.
  57  *
  58  * @author Naoto Sato
  59  */
  60 public class HostLocaleProviderAdapterImpl {
  61 
  62     // locale categories
  63     private static final int CAT_DISPLAY = 0;
  64     private static final int CAT_FORMAT  = 1;
  65 
  66     // NumberFormat styles
  67     private static final int NF_NUMBER   = 0;
  68     private static final int NF_CURRENCY = 1;
  69     private static final int NF_PERCENT  = 2;
  70     private static final int NF_INTEGER  = 3;


 344                 return isSupportedCalendarLocale(locale);
 345             }
 346 
 347             @Override
 348             public int getFirstDayOfWeek(Locale locale) {
 349                 int first = getCalendarDataValue(
 350                                  removeExtensions(locale).toLanguageTag(),
 351                                  CD_FIRSTDAYOFWEEK);
 352                 if (first != -1) {
 353                     return (first + 1) % 7 + 1;
 354                 } else {
 355                     return 0;
 356                 }
 357             }
 358 
 359             @Override
 360             public int getMinimalDaysInFirstWeek(Locale locale) {
 361                 return 0;
 362             }
 363         };


























 364     }
 365 
 366     public static CalendarProvider getCalendarProvider() {
 367         return new CalendarProvider() {
 368             @Override
 369             public Locale[] getAvailableLocales() {
 370                 return getSupportedCalendarLocales();
 371             }
 372 
 373             @Override
 374             public boolean isSupportedLocale(Locale locale) {
 375                 return isSupportedCalendarLocale(locale);
 376             }
 377 
 378             @Override
 379             public Calendar getInstance(TimeZone zone, Locale locale) {
 380                 return new Calendar.Builder()
 381                              .setLocale(getCalendarLocale(locale))
 382                              .setTimeZone(zone)
 383                              .setInstant(System.currentTimeMillis())