17935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/**
27935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *******************************************************************************
37935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Copyright (C) 1996-2004, International Business Machines Corporation and    *
47935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * others. All Rights Reserved.                                                *
57935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *******************************************************************************
67935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert */
77935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
87935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpackage com.ibm.icu.lang;
97935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.lang.UCharacterEnums.ECharacterCategory;
117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/**
137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Enumerated Unicode category types from the UnicodeData.txt file.
147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Used as return results from <a href=UCharacter.html>UCharacter</a>
157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Equivalent to icu's UCharCategory.
167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Refer to <a href="http://www.unicode.org/Public/UNIDATA/UCD.html">
177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Unicode Consortium</a> for more information about UnicodeData.txt.
187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * <p>
197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * <em>NOTE:</em> the UCharacterCategory values are <em>not</em> compatible with
207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * those returned by java.lang.Character.getType.  UCharacterCategory values
217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * match the ones used in ICU4C, while java.lang.Character type
227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * values, though similar, skip the value 17.</p>
237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * <p>
247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * This class is not subclassable
257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * </p>
267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * @author Syn Wee Quek
277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * @stable ICU 2.1
287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert */
297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpublic final class UCharacterCategory implements ECharacterCategory
317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert{
327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * Gets the name of the argument category
347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @param category to retrieve name
357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @return category name
367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * @stable ICU 2.1
377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public static String toString(int category)
397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    {
407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        switch (category) {
417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case UPPERCASE_LETTER :
427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Letter, Uppercase";
437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case LOWERCASE_LETTER :
447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Letter, Lowercase";
457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case TITLECASE_LETTER :
467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Letter, Titlecase";
477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case MODIFIER_LETTER :
487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Letter, Modifier";
497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case OTHER_LETTER :
507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Letter, Other";
517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case NON_SPACING_MARK :
527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Mark, Non-Spacing";
537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case ENCLOSING_MARK :
547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Mark, Enclosing";
557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case COMBINING_SPACING_MARK :
567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Mark, Spacing Combining";
577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case DECIMAL_DIGIT_NUMBER :
587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Number, Decimal Digit";
597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case LETTER_NUMBER :
607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Number, Letter";
617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case OTHER_NUMBER :
627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Number, Other";
637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case SPACE_SEPARATOR :
647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Separator, Space";
657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case LINE_SEPARATOR :
667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Separator, Line";
677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case PARAGRAPH_SEPARATOR :
687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Separator, Paragraph";
697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case CONTROL :
707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Other, Control";
717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case FORMAT :
727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Other, Format";
737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case PRIVATE_USE :
747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Other, Private Use";
757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case SURROGATE :
767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Other, Surrogate";
777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case DASH_PUNCTUATION :
787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Punctuation, Dash";
797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case START_PUNCTUATION :
807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Punctuation, Open";
817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case END_PUNCTUATION :
827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Punctuation, Close";
837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case CONNECTOR_PUNCTUATION :
847935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Punctuation, Connector";
857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case OTHER_PUNCTUATION :
867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Punctuation, Other";
877935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case MATH_SYMBOL :
887935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Symbol, Math";
897935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case CURRENCY_SYMBOL :
907935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Symbol, Currency";
917935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case MODIFIER_SYMBOL :
927935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Symbol, Modifier";
937935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case OTHER_SYMBOL :
947935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Symbol, Other";
957935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case INITIAL_PUNCTUATION :
967935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Punctuation, Initial quote";
977935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        case FINAL_PUNCTUATION :
987935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return "Punctuation, Final quote";
997935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1007935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        return "Unassigned";
1017935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
1027935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1037935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    // private constructor -----------------------------------------------
1047935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    ///CLOVER:OFF
1057935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /**
1067935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * Private constructor to prevent initialisation
1077935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
1087935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    private UCharacterCategory()
1097935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    {
1107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
1117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    ///CLOVER:ON
1127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert}
113