Home | History | Annotate | Download | only in text
      1 /* GENERATED SOURCE. DO NOT MODIFY. */
      2 //  2016 and later: Unicode, Inc. and others.
      3 // License & terms of use: http://www.unicode.org/copyright.html#License
      4 /****************************************************************************
      5  * Copyright (C) 2000-2014, International Business Machines Corporation and
      6  * others. All Rights Reserved.
      7  ****************************************************************************
      8  */
      9 
     10 package android.icu.text;
     11 
     12 import java.util.Locale;
     13 
     14 import android.icu.impl.ICUResourceBundle;
     15 import android.icu.util.Calendar;
     16 import android.icu.util.ChineseCalendar;
     17 import android.icu.util.ULocale;
     18 import android.icu.util.ULocale.Category;
     19 
     20 /**
     21  * A subclass of {@link DateFormatSymbols} for {@link ChineseDateFormat}.
     22  * This class contains additional symbols corresponding to the
     23  * <code>ChineseCalendar.IS_LEAP_MONTH</code> field.
     24  *
     25  * @see ChineseDateFormat
     26  * @see android.icu.util.ChineseCalendar
     27  * @author Alan Liu
     28  * @deprecated ICU 50
     29  * @hide Only a subset of ICU is exposed in Android
     30  */
     31 @Deprecated
     32 public class ChineseDateFormatSymbols extends DateFormatSymbols {
     33     // Generated by serialver from JDK 1.4.1_01
     34     static final long serialVersionUID = 6827816119783952890L;
     35 
     36     /*
     37      * Package-private array that ChineseDateFormat needs to be able to
     38      * read.
     39      */
     40     String[] isLeapMonth;
     41 
     42     /**
     43      * Construct a ChineseDateFormatSymbols for the default <code>FORMAT</code> locale.
     44      * @see Category#FORMAT
     45      * @deprecated ICU 50
     46      */
     47     @Deprecated
     48     public ChineseDateFormatSymbols() {
     49         this(ULocale.getDefault(Category.FORMAT));
     50     }
     51 
     52     /**
     53      * Construct a ChineseDateFormatSymbols for the provided locale.
     54      * @param locale the locale
     55      * @deprecated ICU 50
     56      */
     57     @Deprecated
     58     public ChineseDateFormatSymbols(Locale locale) {
     59         super(ChineseCalendar.class, ULocale.forLocale(locale));
     60     }
     61 
     62     /**
     63      * Construct a ChineseDateFormatSymbols for the provided locale.
     64      * @param locale the locale
     65      * @deprecated ICU 50
     66      */
     67     @Deprecated
     68     public ChineseDateFormatSymbols(ULocale locale) {
     69         super(ChineseCalendar.class, locale);
     70     }
     71 
     72     /**
     73      * Construct a ChineseDateFormatSymbols for the provided calendar and locale.
     74      * @param cal the Calendar
     75      * @param locale the locale
     76      * @deprecated ICU 50
     77      */
     78     @Deprecated
     79     public ChineseDateFormatSymbols(Calendar cal, Locale locale) {
     80         // NPE is thrown here when cal is null, like the super class does
     81         super(cal.getClass(), locale);
     82     }
     83 
     84     /**
     85      * Construct a ChineseDateFormatSymbols for the provided calendar and locale.
     86      * @param cal the Calendar
     87      * @param locale the locale
     88      * @deprecated ICU 50
     89      */
     90     @Deprecated
     91     public ChineseDateFormatSymbols(Calendar cal, ULocale locale) {
     92         // NPE is thrown here when cal is null, like the super class does
     93         super(cal.getClass(), locale);
     94     }
     95 
     96     // New API
     97     /**
     98      * @deprecated ICU 50
     99      */
    100     @Deprecated
    101     public String getLeapMonth(int leap) {
    102         return isLeapMonth[leap];
    103     }
    104 
    105     /**
    106      * {@inheritDoc}
    107      * @deprecated ICU 50
    108      */
    109     @Deprecated
    110     @Override
    111     protected void initializeData(ULocale loc, ICUResourceBundle b, String calendarType) {
    112         super.initializeData(loc, b, calendarType);
    113         initializeIsLeapMonth();
    114     }
    115 
    116     @Override
    117     void initializeData(DateFormatSymbols dfs) {
    118         super.initializeData(dfs);
    119         if (dfs instanceof ChineseDateFormatSymbols) {
    120             // read-only array, no need to clone
    121             this.isLeapMonth = ((ChineseDateFormatSymbols)dfs).isLeapMonth;
    122         } else {
    123             initializeIsLeapMonth();
    124         }
    125     }
    126 
    127     private void initializeIsLeapMonth() {
    128         // The old way, obsolete:
    129         //isLeapMonth = calData.getStringArray("isLeapMonth");
    130         // The new way to fake this for backward compatibility (no longer used to format/parse):
    131 
    132         isLeapMonth = new String[2];
    133         isLeapMonth[0] = "";
    134         isLeapMonth[1] = (leapMonthPatterns != null)? leapMonthPatterns[DT_LEAP_MONTH_PATTERN_FORMAT_WIDE].replace("{0}", ""): "";
    135     }
    136 }
    137