blob: f591d653f9a0d05cac4a35a378c95195fecaf5a0 [file] [log] [blame]
/**
*******************************************************************************
* Copyright (C) 1996-2003, international Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
* $Source:
* /usr/cvs/icu4j/icu4j/src/com/ibm/icu/text/UCharacterCategory.java $
* $Date: 2003/06/03 18:49:33 $
* $Revision: 1.14 $
*
*******************************************************************************
*/
package com.ibm.icu.lang;
/**
* <p>Selection constants for Unicode properties. </p>
* <p>These constants are used in functions like
* UCharacter.hasBinaryProperty(int) to select one of the Unicode properties.
* </p>
* <p>The properties APIs are intended to reflect Unicode properties as
* defined in the Unicode Character Database (UCD) and Unicode Technical
* Reports (UTR).</p>
* <p>For details about the properties see <a href=http://www.unicode.org>
* http://www.unicode.org</a>.</p>
* <p>For names of Unicode properties see the UCD file PropertyAliases.txt.
* </p>
* <p>Important: If ICU is built with UCD files from Unicode versions below
* 3.2, then properties marked with "new" are not or not fully
* available. Check UCharacter.getUnicodeVersion() to be sure.</p>
* @author Syn Wee Quek
* @stable ICU 2.6
* @see com.ibm.icu.lang.UCharacter
*/
public interface UProperty
{
// public data member --------------------------------------------------
/**
* <p>Binary property Alphabetic. </p>
* <p>Property for UCharacter.isUAlphabetic(), different from the property
* in UCharacter.isalpha().</p>
* <p>Lu + Ll + Lt + Lm + Lo + Nl + Other_Alphabetic.</p>
* @stable ICU 2.6
*/
public static final int ALPHABETIC = 0;
/**
* First constant for binary Unicode properties.
* @stable ICU 2.6
*/
public static final int BINARY_START = ALPHABETIC;
/**
* Binary property ASCII_Hex_Digit (0-9 A-F a-f).
* @stable ICU 2.6
*/
public static final int ASCII_HEX_DIGIT = 1;
/**
* <p>Binary property Bidi_Control.</p>
* <p>Format controls which have specific functions in the Bidi Algorithm.
* </p>
* @stable ICU 2.6
*/
public static final int BIDI_CONTROL = 2;
/**
* <p>Binary property Bidi_Mirrored.</p>
* <p>Characters that may change display in RTL text.</p>
* <p>Property for UCharacter.isMirrored().</p>
* <p>See Bidi Algorithm; UTR 9.</p>
* @stable ICU 2.6
*/
public static final int BIDI_MIRRORED = 3;
/**
* <p>Binary property Dash.</p>
* <p>Variations of dashes.</p>
* @stable ICU 2.6
*/
public static final int DASH = 4;
/**
* <p>Binary property Default_Ignorable_Code_Point (new).
* </p>
* <p>Property that indicates codepoint is ignorable in most processing.
* </p>
* <p>Codepoints (2060..206F, FFF0..FFFB, E0000..E0FFF) +
* Other_Default_Ignorable_Code_Point + (Cf + Cc + Cs - White_Space)</p>
* @stable ICU 2.6
*/
public static final int DEFAULT_IGNORABLE_CODE_POINT = 5;
/**
* <p>Binary property Deprecated (new).</p>
* <p>The usage of deprecated characters is strongly discouraged.</p>
* @stable ICU 2.6
*/
public static final int DEPRECATED = 6;
/**
* <p>Binary property Diacritic.</p>
* <p>Characters that linguistically modify the meaning of another
* character to which they apply.</p>
* @stable ICU 2.6
*/
public static final int DIACRITIC = 7;
/**
* <p>Binary property Extender.</p>
* <p>Extend the value or shape of a preceding alphabetic character, e.g.
* length and iteration marks.</p>
* @stable ICU 2.6
*/
public static final int EXTENDER = 8;
/**
* <p>Binary property Full_Composition_Exclusion.</p>
* <p>CompositionExclusions.txt + Singleton Decompositions +
* Non-Starter Decompositions.</p>
* @stable ICU 2.6
*/
public static final int FULL_COMPOSITION_EXCLUSION = 9;
/**
* <p>Binary property Grapheme_Base (new).</p>
* <p>For programmatic determination of grapheme cluster boundaries.
* [0..10FFFF]-Cc-Cf-Cs-Co-Cn-Zl-Zp-Grapheme_Link-Grapheme_Extend-CGJ</p>
* @stable ICU 2.6
*/
public static final int GRAPHEME_BASE = 10;
/**
* <p>Binary property Grapheme_Extend (new).</p>
* <p>For programmatic determination of grapheme cluster boundaries.</p>
* <p>Me+Mn+Mc+Other_Grapheme_Extend-Grapheme_Link-CGJ</p>
* @stable ICU 2.6
*/
public static final int GRAPHEME_EXTEND = 11;
/**
* <p>Binary property Grapheme_Link (new).</p>
* <p>For programmatic determination of grapheme cluster boundaries.</p>
* @stable ICU 2.6
*/
public static final int GRAPHEME_LINK = 12;
/**
* <p>Binary property Hex_Digit.</p>
* <p>Characters commonly used for hexadecimal numbers.</p>
* @stable ICU 2.6
*/
public static final int HEX_DIGIT = 13;
/**
* <p>Binary property Hyphen.</p>
* <p>Dashes used to mark connections between pieces of words, plus the
* Katakana middle dot.</p>
* @stable ICU 2.6
*/
public static final int HYPHEN = 14;
/**
* <p>Binary property ID_Continue.</p>
* <p>Characters that can continue an identifier.</p>
* <p>ID_Start+Mn+Mc+Nd+Pc</p>
* @stable ICU 2.6
*/
public static final int ID_CONTINUE = 15;
/**
* <p>Binary property ID_Start.</p>
* <p>Characters that can start an identifier.</p>
* <p>Lu+Ll+Lt+Lm+Lo+Nl</p>
* @stable ICU 2.6
*/
public static final int ID_START = 16;
/**
* <p>Binary property Ideographic.</p>
* <p>CJKV ideographs.</p>
* @stable ICU 2.6
*/
public static final int IDEOGRAPHIC = 17;
/**
* <p>Binary property IDS_Binary_Operator (new).</p>
* <p>For programmatic determination of Ideographic Description Sequences.
* </p>
* @stable ICU 2.6
*/
public static final int IDS_BINARY_OPERATOR = 18;
/**
* <p>Binary property IDS_Trinary_Operator (new).</p>
* <p?For programmatic determination of Ideographic Description
* Sequences.</p>
* @stable ICU 2.6
*/
public static final int IDS_TRINARY_OPERATOR = 19;
/**
* <p>Binary property Join_Control.</p>
* <p>Format controls for cursive joining and ligation.</p>
* @stable ICU 2.6
*/
public static final int JOIN_CONTROL = 20;
/**
* <p>Binary property Logical_Order_Exception (new).</p>
* <p>Characters that do not use logical order and require special
* handling in most processing.</p>
* @stable ICU 2.6
*/
public static final int LOGICAL_ORDER_EXCEPTION = 21;
/**
* <p>Binary property Lowercase.</p>
* <p>Same as UCharacter.isULowercase(), different from
* UCharacter.islower().</p>
* <p>Ll+Other_Lowercase</p>
* @stable ICU 2.6
*/
public static final int LOWERCASE = 22;
/** <p>Binary property Math.</p>
* <p>Sm+Other_Math</p>
* @stable ICU 2.6
*/
public static final int MATH = 23;
/**
* <p>Binary property Noncharacter_Code_Point.</p>
* <p>Code points that are explicitly defined as illegal for the encoding
* of characters.</p>
* @stable ICU 2.6
*/
public static final int NONCHARACTER_CODE_POINT = 24;
/**
* <p>Binary property Quotation_Mark.</p>
* @stable ICU 2.6
*/
public static final int QUOTATION_MARK = 25;
/**
* <p>Binary property Radical (new).</p>
* <p>For programmatic determination of Ideographic Description
* Sequences.</p>
* @stable ICU 2.6
*/
public static final int RADICAL = 26;
/**
* <p>Binary property Soft_Dotted (new).</p>
* <p>Characters with a "soft dot", like i or j.</p>
* <p>An accent placed on these characters causes the dot to disappear.</p>
* @stable ICU 2.6
*/
public static final int SOFT_DOTTED = 27;
/**
* <p>Binary property Terminal_Punctuation.</p>
* <p>Punctuation characters that generally mark the end of textual
* units.</p>
* @stable ICU 2.6
*/
public static final int TERMINAL_PUNCTUATION = 28;
/**
* <p>Binary property Unified_Ideograph (new).</p>
* <p>For programmatic determination of Ideographic Description
* Sequences.</p>
* @stable ICU 2.6
*/
public static final int UNIFIED_IDEOGRAPH = 29;
/**
* <p>Binary property Uppercase.</p>
* <p>Same as UCharacter.isUUppercase(), different from
* UCharacter.isUpperCase().</p>
* <p>Lu+Other_Uppercase</p>
* @stable ICU 2.6
*/
public static final int UPPERCASE = 30;
/**
* <p>Binary property White_Space.</p>
* <p>Same as UCharacter.isUWhiteSpace(), different from
* UCharacter.isSpace() and UCharacter.isWhitespace().</p>
* Space characters+TAB+CR+LF-ZWSP-ZWNBSP</p>
* @stable ICU 2.6
*/
public static final int WHITE_SPACE = 31;
/**
* <p>Binary property XID_Continue.</p>
* <p>ID_Continue modified to allow closure under normalization forms
* NFKC and NFKD.</p>
* @stable ICU 2.6
*/
public static final int XID_CONTINUE = 32;
/**
* <p>Binary property XID_Start.</p>
* <p>ID_Start modified to allow closure under normalization forms NFKC
* and NFKD.</p>
* @stable ICU 2.6
*/
public static final int XID_START = 33;
/**
* <p>Binary property Case_Sensitive.</p>
* <p>Either the source of a case
* mapping or _in_ the target of a case mapping. Not the same as
* the general category Cased_Letter.</p>
* @draft ICU 2.6
*/
public static final int CASE_SENSITIVE = 34;
/**
* <p>One more than the last constant for binary Unicode properties.</p>
* @stable ICU 2.6
*/
public static final int BINARY_LIMIT = 35;
/**
* Enumerated property Bidi_Class.
* Same as UCharacter.getDirection(int), returns UCharacterDirection values.
* @draft ICU 2.4
*/
public static final int BIDI_CLASS = 0x1000;
/**
* First constant for enumerated/integer Unicode properties.
* @draft ICU 2.4
*/
public static final int INT_START = BIDI_CLASS;
/**
* Enumerated property Block.
* Same as UCharacter.UnicodeBlock.of(int), returns UCharacter.UnicodeBlock
* values.
* @draft ICU 2.4
*/
public static final int BLOCK = 0x1001;
/**
* Enumerated property Canonical_Combining_Class.
* Same as UCharacter.getCombiningClass(int), returns 8-bit numeric values.
* @draft ICU 2.4
*/
public static final int CANONICAL_COMBINING_CLASS = 0x1002;
/**
* Enumerated property Decomposition_Type.
* Returns UCharacter.DecompositionType values.
* @draft ICU 2.4
*/
public static final int DECOMPOSITION_TYPE = 0x1003;
/**
* Enumerated property East_Asian_Width.
* See http://www.unicode.org/reports/tr11/
* Returns UCharacter.EastAsianWidth values.
* @draft ICU 2.4
*/
public static final int EAST_ASIAN_WIDTH = 0x1004;
/**
* Enumerated property General_Category.
* Same as UCharacter.getType(int), returns UCharacterCategory values.
* @draft ICU 2.4
*/
public static final int GENERAL_CATEGORY = 0x1005;
/**
* Enumerated property Joining_Group.
* Returns UCharacter.JoiningGroup values.
* @draft ICU 2.4
*/
public static final int JOINING_GROUP = 0x1006;
/**
* Enumerated property Joining_Type.
* Returns UCharacter.JoiningType values.
* @draft ICU 2.4
*/
public static final int JOINING_TYPE = 0x1007;
/**
* Enumerated property Line_Break.
* Returns UCharacter.LineBreak values.
* @draft ICU 2.4
*/
public static final int LINE_BREAK = 0x1008;
/**
* Enumerated property Numeric_Type.
* Returns UCharacter.NumericType values.
* @draft ICU 2.4
*/
public static final int NUMERIC_TYPE = 0x1009;
/**
* Enumerated property Script.
* Same as UScript.getScript(int), returns UScript values.
* @draft ICU 2.4
*/
public static final int SCRIPT = 0x100A;
/**
* Enumerated property Hangul_Syllable_Type, new in Unicode 4.
* Returns HangulSyllableType values.
* @draft ICU 2.6
* */
public static final int HANGUL_SYLLABLE_TYPE = 0x100B;
/**
* One more than the last constant for enumerated/integer Unicode
* properties.
* @draft ICU 2.4
*/
public static final int INT_LIMIT = 0x100C;
/**
* Bitmask property General_Category_Mask.
* This is the General_Category property returned as a bit mask.
* When used in UCharacter.getIntPropertyValue(c),
* returns bit masks for UCharacterCategory values where exactly one bit is set.
* When used with UCharacter.getPropertyValueName() and UCharacter.getPropertyValueEnum(),
* a multi-bit mask is used for sets of categories like "Letters".
* @draft ICU 2.4
*/
public static final int GENERAL_CATEGORY_MASK = 0x2000;
/**
* First constant for bit-mask Unicode properties.
* @draft ICU 2.4
*/
public static final int MASK_START = GENERAL_CATEGORY_MASK;
/**
* One more than the last constant for bit-mask Unicode properties.
* @draft ICU 2.4
*/
public static final int MASK_LIMIT = 0x2001;
/**
* First constant for double Unicode properties.
* @draft ICU 2.4
*/
public static final int DOUBLE_START = 0x3000;
/**
* Double property Numeric_Value.
* Corresponds to UCharacter.getUnicodeNumericValue(int).
* @draft ICU 2.4
*/
public static final int NUMERIC_VALUE = DOUBLE_START;
/**
* One more than the last constant for double Unicode properties.
* @draft ICU 2.4
*/
public static final int DOUBLE_LIMIT = 0x3001;
/**
* First constant for string Unicode properties.
* @draft ICU 2.4
*/
public static final int STRING_START = 0x4000;
/**
* String property Age.
* Corresponds to UCharacter.getAge(int).
* @draft ICU 2.4
*/
public static final int AGE = STRING_START;
/**
* String property Bidi_Mirroring_Glyph.
* Corresponds to UCharacter.getMirror(int).
* @draft ICU 2.4
*/
public static final int BIDI_MIRRORING_GLYPH = 0x4001;
/**
* String property Case_Folding.
* Corresponds to UCharacter.foldCase(String, boolean).
* @draft ICU 2.4
*/
public static final int CASE_FOLDING = 0x4002;
/**
* String property ISO_Comment.
* Corresponds to UCharacter.getISOComment(int).
* @draft ICU 2.4
*/
public static final int ISO_COMMENT = 0x4003;
/**
* String property Lowercase_Mapping.
* Corresponds to UCharacter.toLowerCase(String).
* @draft ICU 2.4
*/
public static final int LOWERCASE_MAPPING = 0x4004;
/**
* String property Name.
* Corresponds to UCharacter.getName(int).
* @draft ICU 2.4
*/
public static final int NAME = 0x4005;
/**
* String property Simple_Case_Folding.
* Corresponds to UCharacter.foldCase(int, boolean).
* @draft ICU 2.4
*/
public static final int SIMPLE_CASE_FOLDING = 0x4006;
/**
* String property Simple_Lowercase_Mapping.
* Corresponds to UCharacter.toLowerCase(int).
* @draft ICU 2.4
*/
public static final int SIMPLE_LOWERCASE_MAPPING = 0x4007;
/**
* String property Simple_Titlecase_Mapping.
* Corresponds to UCharacter.toTitleCase(int).
* @draft ICU 2.4
*/
public static final int SIMPLE_TITLECASE_MAPPING = 0x4008;
/**
* String property Simple_Uppercase_Mapping.
* Corresponds to UCharacter.toUpperCase(int).
* @draft ICU 2.4
*/
public static final int SIMPLE_UPPERCASE_MAPPING = 0x4009;
/**
* String property Titlecase_Mapping.
* Corresponds to UCharacter.toTitleCase(String).
* @draft ICU 2.4
*/
public static final int TITLECASE_MAPPING = 0x400A;
/**
* String property Unicode_1_Name.
* Corresponds to UCharacter.getName1_0(int).
* @draft ICU 2.4
*/
public static final int UNICODE_1_NAME = 0x400B;
/**
* String property Uppercase_Mapping.
* Corresponds to UCharacter.toUpperCase(String).
* @draft ICU 2.4
*/
public static final int UPPERCASE_MAPPING = 0x400C;
/**
* One more than the last constant for string Unicode properties.
* @draft ICU 2.4
*/
public static final int STRING_LIMIT = 0x400D;
/**
* Selector constants for UCharacter.getPropertyName() and
* UCharacter.getPropertyValueName(). These selectors are used to
* choose which name is returned for a given property or value.
* All properties and values have a long name. Most have a short
* name, but some do not. Unicode allows for additional names,
* beyond the long and short name, which would be indicated by
* LONG + i, where i=1, 2,...
*
* @see UCharacter#getPropertyName
* @see UCharacter#getPropertyValueName
* @draft ICU 2.4
*/
public interface NameChoice {
/**
* Selector for the abbreviated name of a property or value.
* Most properties and values have a short name; those that do
* not return null.
* @draft ICU 2.4
*/
static final int SHORT = 0;
/**
* Selector for the long name of a property or value. All
* properties and values have a long name.
* @draft ICU 2.4
*/
static final int LONG = 1;
/**
* The number of predefined property name choices. Individual
* properties or values may have more than COUNT aliases.
* @draft ICU 2.4
*/
static final int COUNT = 2;
}
}