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
10package android.icu.text;
11
12import java.util.Locale;
13
14import android.icu.impl.ICUResourceBundle;
15import android.icu.util.Calendar;
16import android.icu.util.ChineseCalendar;
17import android.icu.util.ULocale;
18import 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
32public 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