DisplayContext.java revision 7935b1839a081ed19ae0d33029ad3c09632a2caa
17935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/*
27935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *******************************************************************************
37935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Copyright (C) 2012-2014, International Business Machines Corporation and    *
47935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * others. All Rights Reserved.                                                *
57935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *******************************************************************************
67935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert */
77935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpackage com.ibm.icu.text;
87935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
97935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/**
107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Display context settings.
117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Note, the specific numeric values are internal and may change.
127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * @stable ICU 51
137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert */
147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpublic enum DisplayContext {
157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * ================================
177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * Settings for DIALECT_HANDLING (use one)
187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * A possible setting for DIALECT_HANDLING:
217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * use standard names when generating a locale name,
227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * e.g. en_GB displays as 'English (United Kingdom)'.
237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @stable ICU 51
247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    STANDARD_NAMES(Type.DIALECT_HANDLING, 0),
267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * A possible setting for DIALECT_HANDLING:
287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * use dialect names, when generating a locale name,
297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * e.g. en_GB displays as 'British English'.
307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @stable ICU 51
317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    DIALECT_NAMES(Type.DIALECT_HANDLING, 1),
337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * ================================
357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * Settings for CAPITALIZATION (use one)
367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * A possible setting for CAPITALIZATION:
397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * The capitalization context to be used is unknown (this is the default value).
407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @stable ICU 51
417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    CAPITALIZATION_NONE(Type.CAPITALIZATION, 0),
437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * A possible setting for CAPITALIZATION:
457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * The capitalization context if a date, date symbol or display name is to be
467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * formatted with capitalization appropriate for the middle of a sentence.
477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @stable ICU 51
487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE(Type.CAPITALIZATION, 1),
507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * A possible setting for CAPITALIZATION:
527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * The capitalization context if a date, date symbol or display name is to be
537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * formatted with capitalization appropriate for the beginning of a sentence.
547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @stable ICU 51
557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE(Type.CAPITALIZATION, 2),
577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * A possible setting for CAPITALIZATION:
597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * The capitalization context if a date, date symbol or display name is to be
607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * formatted with capitalization appropriate for a user-interface list or menu item.
617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @stable ICU 51
627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    CAPITALIZATION_FOR_UI_LIST_OR_MENU(Type.CAPITALIZATION, 3),
647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * A possible setting for CAPITALIZATION:
667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * The capitalization context if a date, date symbol or display name is to be
677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * formatted with capitalization appropriate for stand-alone usage such as an
687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * isolated name on a calendar page.
697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @stable ICU 51
707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    CAPITALIZATION_FOR_STANDALONE(Type.CAPITALIZATION, 4),
727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * ================================
747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * Settings for DISPLAY_LENGTH (use one)
757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * A possible setting for DISPLAY_LENGTH:
787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * use full names when generating a locale name,
797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * e.g. "United States" for US.
807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @draft ICU 54
817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @provisional This API might change or be removed in a future release.
827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    LENGTH_FULL(Type.DISPLAY_LENGTH, 0),
847935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * A possible setting for DISPLAY_LENGTH:
867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * use short names when generating a locale name,
877935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * e.g. "U.S." for US.
887935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @draft ICU 54
897935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @provisional This API might change or be removed in a future release.
907935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
917935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    LENGTH_SHORT(Type.DISPLAY_LENGTH, 1);
927935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
937935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
947935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * Type values for DisplayContext
957935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @stable ICU 51
967935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
977935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public enum Type {
987935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        /**
997935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert         * DIALECT_HANDLING can be set to STANDARD_NAMES or DIALECT_NAMES.
1007935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert         * @stable ICU 51
1017935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert         */
1027935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DIALECT_HANDLING,
1037935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        /**
1047935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert         * CAPITALIZATION can be set to one of CAPITALIZATION_NONE through
1057935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert         * CAPITALIZATION_FOR_STANDALONE.
1067935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert         * @stable ICU 51
1077935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert         */
1087935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        CAPITALIZATION,
1097935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        /**
1107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert         * DISPLAY_LENGTH can be set to LENGTH_FULL or LENGTH_SHORT.
1117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert         * @draft ICU 54
1127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert         * @provisional This API might change or be removed in a future release.
1137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert         */
1147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DISPLAY_LENGTH
1157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
1167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    private final Type type;
1187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    private final int value;
1197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    private DisplayContext(Type type, int value) {
1207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        this.type = type;
1217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        this.value = value;
1227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
1237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
1247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * Get the Type part of the enum item
1257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * (e.g. CAPITALIZATION)
1267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @stable ICU 51
1277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
1287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public Type type() {
1297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        return type;
1307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
1317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
1327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * Get the value part of the enum item
1337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * (e.g. CAPITALIZATION_FOR_STANDALONE)
1347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @stable ICU 51
1357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
1367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public int value() {
1377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        return value;
1387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
1397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert}
140