package com.ibm.util.resources;
import java.util.ListResourceBundle;

/**
 * Default Date Format symbols for the Chinese calendar.
 */
public class ChineseCalendarSymbols extends ListResourceBundle {

    static final Object[][] fContents = {
        { "IsLeapMonth",
            new String[] {
                "",
                "*"
            },
        },
        { "DateTimePatterns",
            new String[] {
                "h:mm:ss a z", // full time pattern
                "h:mm:ss a z", // long time pattern
                "h:mm:ss a", // medium time pattern
                "h:mm a", // short time pattern
                // TODO Fix the following
                "EEEE y'x'G-Ml-d", // full date pattern
                "y'x'G-Ml-d", // long date pattern
                "y'x'G-Ml-d", // medium date pattern
                "y'x'G-Ml-d", // short date pattern
                "{1} {0}" // date-time pattern
            }
        },
    };

    public synchronized Object[][] getContents() {
        return fContents;
    }
}
