< prev index next >

src/java.base/macosx/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java

Print this page
rev 56834 : [mq]: 8232871
   1 /*
   2  * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  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.lang.ref.SoftReference;
  29 import java.text.*;
  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.Collections;
  35 import java.util.Calendar;

  36 import java.util.HashSet;
  37 import java.util.Locale;
  38 import java.util.Map;
  39 import java.util.ResourceBundle.Control;
  40 import java.util.Set;
  41 import java.util.TimeZone;
  42 import java.util.concurrent.ConcurrentHashMap;
  43 import java.util.concurrent.ConcurrentMap;
  44 import java.util.concurrent.atomic.AtomicReferenceArray;
  45 import java.util.spi.CalendarDataProvider;
  46 import java.util.spi.CalendarNameProvider;
  47 import java.util.spi.CurrencyNameProvider;
  48 import java.util.spi.LocaleNameProvider;
  49 import java.util.spi.TimeZoneNameProvider;
  50 import sun.text.spi.JavaTimeDateTimePatternProvider;
  51 import sun.util.spi.CalendarProvider;
  52 
  53 /**
  54  * LocaleProviderAdapter implementation for the Mac OS X locale data
  55  *


 533             @Override
 534             public int getMinimalDaysInFirstWeek(Locale locale) {
 535                 return getCalendarInt(locale.toLanguageTag(), CD_MINIMALDAYSINFIRSTWEEK);
 536             }
 537         };
 538     }
 539 
 540     public static CalendarNameProvider getCalendarNameProvider() {
 541         return new CalendarNameProvider() {
 542             @Override
 543             public Locale[] getAvailableLocales() {
 544                 return getSupportedCalendarLocales();
 545             }
 546 
 547             @Override
 548             public boolean isSupportedLocale(Locale locale) {
 549                 return isSupportedCalendarLocale(locale);
 550             }
 551 
 552             @Override
 553             public String getDisplayName(String calType, int field, int value,
 554                                          int style, Locale locale) {





 555                 return null;
 556             }

 557 
 558             @Override
 559             public Map<String, Integer> getDisplayNames(String calType,
 560                                          int field, int style, Locale locale) {
 561                 return null;












 562             }
 563         };
 564     }
 565 
 566     public static CalendarProvider getCalendarProvider() {
 567         return new CalendarProvider() {
 568             @Override
 569             public Locale[] getAvailableLocales() {
 570                 return getSupportedCalendarLocales();
 571             }
 572 
 573             @Override
 574             public boolean isSupportedLocale(Locale locale) {
 575                 return isSupportedCalendarLocale(locale);
 576             }
 577 
 578             @Override
 579             public Calendar getInstance(TimeZone zone, Locale locale) {
 580                 return new Calendar.Builder()
 581                              .setLocale(locale)


 884     private static native String[] getWeekdays(String langTag, String[] wdays);
 885     private static native String[] getShortWeekdays(String langTag, String[] swdays);
 886 
 887     // For DecimalFormatSymbolsProvider
 888     private static native String getCurrencySymbol(String langTag, String currencySymbol);
 889     private static native char getDecimalSeparator(String langTag, char decimalSeparator);
 890     private static native char getGroupingSeparator(String langTag, char groupingSeparator);
 891     private static native String getInfinity(String langTag, String infinity);
 892     private static native String getInternationalCurrencySymbol(String langTag, String internationalCurrencySymbol);
 893     private static native char getMinusSign(String langTag, char minusSign);
 894     private static native char getMonetaryDecimalSeparator(String langTag, char monetaryDecimalSeparator);
 895     private static native String getNaN(String langTag, String nan);
 896     private static native char getPercent(String langTag, char percent);
 897     private static native char getPerMill(String langTag, char perMill);
 898     private static native char getZeroDigit(String langTag, char zeroDigit);
 899     private static native String getExponentSeparator(String langTag, String exponent);
 900 
 901     // For CalendarDataProvider
 902     private static native int getCalendarInt(String langTag, int type);
 903 



 904     // For Locale/CurrencyNameProvider
 905     private static native String getDisplayString(String langTag, int key, String value);
 906 
 907     // For TimeZoneNameProvider
 908     private static native String getTimeZoneDisplayString(String langTag, int style, String value);
 909 }
   1 /*
   2  * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  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.lang.ref.SoftReference;
  29 import java.text.*;
  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.Collections;
  35 import java.util.Calendar;
  36 import java.util.HashMap;
  37 import java.util.HashSet;
  38 import java.util.Locale;
  39 import java.util.Map;
  40 import java.util.ResourceBundle.Control;
  41 import java.util.Set;
  42 import java.util.TimeZone;
  43 import java.util.concurrent.ConcurrentHashMap;
  44 import java.util.concurrent.ConcurrentMap;
  45 import java.util.concurrent.atomic.AtomicReferenceArray;
  46 import java.util.spi.CalendarDataProvider;
  47 import java.util.spi.CalendarNameProvider;
  48 import java.util.spi.CurrencyNameProvider;
  49 import java.util.spi.LocaleNameProvider;
  50 import java.util.spi.TimeZoneNameProvider;
  51 import sun.text.spi.JavaTimeDateTimePatternProvider;
  52 import sun.util.spi.CalendarProvider;
  53 
  54 /**
  55  * LocaleProviderAdapter implementation for the Mac OS X locale data
  56  *


 534             @Override
 535             public int getMinimalDaysInFirstWeek(Locale locale) {
 536                 return getCalendarInt(locale.toLanguageTag(), CD_MINIMALDAYSINFIRSTWEEK);
 537             }
 538         };
 539     }
 540 
 541     public static CalendarNameProvider getCalendarNameProvider() {
 542         return new CalendarNameProvider() {
 543             @Override
 544             public Locale[] getAvailableLocales() {
 545                 return getSupportedCalendarLocales();
 546             }
 547 
 548             @Override
 549             public boolean isSupportedLocale(Locale locale) {
 550                 return isSupportedCalendarLocale(locale);
 551             }
 552 
 553             @Override
 554             public String getDisplayName(String calendarType, int field,
 555                                          int value, int style, Locale locale) {
 556                 String[] names = getCalendarDisplayStrings(locale.toLanguageTag(),
 557                         field, style);
 558                 if (names != null && value >= 0 && value < names.length) {
 559                     return names[value];
 560                 } else {
 561                     return null;
 562                 }
 563             }
 564 
 565             @Override
 566             public Map<String, Integer> getDisplayNames(String calendarType,
 567                                                         int field, int style, Locale locale) {
 568                 Map<String, Integer> map = null;
 569                 String[] names = getCalendarDisplayStrings(locale.toLanguageTag(),
 570                         field, style);
 571                 if (names != null) {
 572                     map = new HashMap<>((int)Math.ceil(names.length / 0.75));
 573                     for (int value = 0; value < names.length; value++) {
 574                         if (names[value] != null) {
 575                             map.put(names[value], value);
 576                         }
 577                     }
 578                     map = map.isEmpty() ? null : map;
 579                 }
 580                 return map;
 581             }
 582         };
 583     }
 584 
 585     public static CalendarProvider getCalendarProvider() {
 586         return new CalendarProvider() {
 587             @Override
 588             public Locale[] getAvailableLocales() {
 589                 return getSupportedCalendarLocales();
 590             }
 591 
 592             @Override
 593             public boolean isSupportedLocale(Locale locale) {
 594                 return isSupportedCalendarLocale(locale);
 595             }
 596 
 597             @Override
 598             public Calendar getInstance(TimeZone zone, Locale locale) {
 599                 return new Calendar.Builder()
 600                              .setLocale(locale)


 903     private static native String[] getWeekdays(String langTag, String[] wdays);
 904     private static native String[] getShortWeekdays(String langTag, String[] swdays);
 905 
 906     // For DecimalFormatSymbolsProvider
 907     private static native String getCurrencySymbol(String langTag, String currencySymbol);
 908     private static native char getDecimalSeparator(String langTag, char decimalSeparator);
 909     private static native char getGroupingSeparator(String langTag, char groupingSeparator);
 910     private static native String getInfinity(String langTag, String infinity);
 911     private static native String getInternationalCurrencySymbol(String langTag, String internationalCurrencySymbol);
 912     private static native char getMinusSign(String langTag, char minusSign);
 913     private static native char getMonetaryDecimalSeparator(String langTag, char monetaryDecimalSeparator);
 914     private static native String getNaN(String langTag, String nan);
 915     private static native char getPercent(String langTag, char percent);
 916     private static native char getPerMill(String langTag, char perMill);
 917     private static native char getZeroDigit(String langTag, char zeroDigit);
 918     private static native String getExponentSeparator(String langTag, String exponent);
 919 
 920     // For CalendarDataProvider
 921     private static native int getCalendarInt(String langTag, int type);
 922 
 923     // For CalendarNameProvider
 924     private static native String[] getCalendarDisplayStrings(String langTag, int field, int style);
 925 
 926     // For Locale/CurrencyNameProvider
 927     private static native String getDisplayString(String langTag, int key, String value);
 928 
 929     // For TimeZoneNameProvider
 930     private static native String getTimeZoneDisplayString(String langTag, int style, String value);
 931 }
< prev index next >