• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2 *******************************************************************************
3 * Copyright (C) 1996-2014, International Business Machines Corporation and
4 * others. All Rights Reserved.
5 *******************************************************************************
6 */
7 
8 package com.ibm.icu.lang;
9 
10 /**
11  * <p>Selection constants for Unicode properties. </p>
12  * <p>These constants are used in functions like
13  * UCharacter.hasBinaryProperty(int) to select one of the Unicode properties.
14  * </p>
15  * <p>The properties APIs are intended to reflect Unicode properties as
16  * defined in the Unicode Character Database (UCD) and Unicode Technical
17  * Reports (UTR).</p>
18  * <p>For details about the properties see <a href=http://www.unicode.org>
19  * http://www.unicode.org</a>.</p>
20  * <p>For names of Unicode properties see the UCD file PropertyAliases.txt.
21  * </p>
22  * <p>Important: If ICU is built with UCD files from Unicode versions below
23  * 3.2, then properties marked with "new" are not or not fully
24  * available. Check UCharacter.getUnicodeVersion() to be sure.</p>
25  * @author Syn Wee Quek
26  * @stable ICU 2.6
27  * @see com.ibm.icu.lang.UCharacter
28  */
29 public interface UProperty
30 {
31     // public data member --------------------------------------------------
32 
33     /**
34      * Special value indicating undefined property.
35      * @internal
36      * @deprecated This API is ICU internal only.
37      */
38     @Deprecated
39     public static final int UNDEFINED = -1;
40 
41     /**
42      * <p>Binary property Alphabetic. </p>
43      * <p>Property for UCharacter.isUAlphabetic(), different from the property
44      * in UCharacter.isalpha().</p>
45      * <p>Lu + Ll + Lt + Lm + Lo + Nl + Other_Alphabetic.</p>
46      * @stable ICU 2.6
47      */
48     public static final int ALPHABETIC = 0;
49 
50     /**
51      * First constant for binary Unicode properties.
52      * @stable ICU 2.6
53      */
54     public static final int BINARY_START = ALPHABETIC;
55 
56     /**
57      * Binary property ASCII_Hex_Digit (0-9 A-F a-f).
58      * @stable ICU 2.6
59      */
60     public static final int ASCII_HEX_DIGIT = 1;
61 
62     /**
63      * <p>Binary property Bidi_Control.</p>
64      * <p>Format controls which have specific functions in the Bidi Algorithm.
65      * </p>
66      * @stable ICU 2.6
67      */
68     public static final int BIDI_CONTROL = 2;
69 
70     /**
71      * <p>Binary property Bidi_Mirrored.</p>
72      * <p>Characters that may change display in RTL text.</p>
73      * <p>Property for UCharacter.isMirrored().</p>
74      * <p>See Bidi Algorithm; UTR 9.</p>
75      * @stable ICU 2.6
76      */
77     public static final int BIDI_MIRRORED = 3;
78 
79     /**
80      * <p>Binary property Dash.</p>
81      * <p>Variations of dashes.</p>
82      * @stable ICU 2.6
83      */
84     public static final int DASH = 4;
85 
86     /**
87      * <p>Binary property Default_Ignorable_Code_Point (new).
88      * </p>
89      * <p>Property that indicates codepoint is ignorable in most processing.
90      * </p>
91      * <p>Codepoints (2060..206F, FFF0..FFFB, E0000..E0FFF) +
92      * Other_Default_Ignorable_Code_Point + (Cf + Cc + Cs - White_Space)</p>
93      * @stable ICU 2.6
94      */
95     public static final int DEFAULT_IGNORABLE_CODE_POINT = 5;
96 
97     /**
98      * <p>Binary property Deprecated (new).</p>
99      * <p>The usage of deprecated characters is strongly discouraged.</p>
100      * @stable ICU 2.6
101      */
102     public static final int DEPRECATED = 6;
103 
104     /**
105      * <p>Binary property Diacritic.</p>
106      * <p>Characters that linguistically modify the meaning of another
107      * character to which they apply.</p>
108      * @stable ICU 2.6
109      */
110     public static final int DIACRITIC = 7;
111 
112     /**
113      * <p>Binary property Extender.</p>
114      * <p>Extend the value or shape of a preceding alphabetic character, e.g.
115      * length and iteration marks.</p>
116      * @stable ICU 2.6
117      */
118     public static final int EXTENDER = 8;
119 
120     /**
121      * <p>Binary property Full_Composition_Exclusion.</p>
122      * <p>CompositionExclusions.txt + Singleton Decompositions +
123      * Non-Starter Decompositions.</p>
124      * @stable ICU 2.6
125      */
126     public static final int FULL_COMPOSITION_EXCLUSION = 9;
127 
128     /**
129      * <p>Binary property Grapheme_Base (new).</p>
130      * <p>For programmatic determination of grapheme cluster boundaries.
131      * [0..10FFFF]-Cc-Cf-Cs-Co-Cn-Zl-Zp-Grapheme_Link-Grapheme_Extend-CGJ</p>
132      * @stable ICU 2.6
133      */
134     public static final int GRAPHEME_BASE = 10;
135 
136     /**
137      * <p>Binary property Grapheme_Extend (new).</p>
138      * <p>For programmatic determination of grapheme cluster boundaries.</p>
139      * <p>Me+Mn+Mc+Other_Grapheme_Extend-Grapheme_Link-CGJ</p>
140      * @stable ICU 2.6
141      */
142     public static final int GRAPHEME_EXTEND = 11;
143 
144     /**
145      * <p>Binary property Grapheme_Link (new).</p>
146      * <p>For programmatic determination of grapheme cluster boundaries.</p>
147      * @stable ICU 2.6
148      */
149     public static final int GRAPHEME_LINK = 12;
150 
151     /**
152      * <p>Binary property Hex_Digit.</p>
153      * <p>Characters commonly used for hexadecimal numbers.</p>
154      * @stable ICU 2.6
155      */
156     public static final int HEX_DIGIT = 13;
157 
158     /**
159      * <p>Binary property Hyphen.</p>
160      * <p>Dashes used to mark connections between pieces of words, plus the
161      * Katakana middle dot.</p>
162      * @stable ICU 2.6
163      */
164     public static final int HYPHEN = 14;
165 
166     /**
167      * <p>Binary property ID_Continue.</p>
168      * <p>Characters that can continue an identifier.</p>
169      * <p>ID_Start+Mn+Mc+Nd+Pc</p>
170      * @stable ICU 2.6
171      */
172     public static final int ID_CONTINUE = 15;
173 
174     /**
175      * <p>Binary property ID_Start.</p>
176      * <p>Characters that can start an identifier.</p>
177      * <p>Lu+Ll+Lt+Lm+Lo+Nl</p>
178      * @stable ICU 2.6
179      */
180     public static final int ID_START = 16;
181 
182     /**
183      * <p>Binary property Ideographic.</p>
184      * <p>CJKV ideographs.</p>
185      * @stable ICU 2.6
186      */
187     public static final int IDEOGRAPHIC = 17;
188 
189     /**
190      * <p>Binary property IDS_Binary_Operator (new).</p>
191      * <p>For programmatic determination of Ideographic Description Sequences.
192      * </p>
193      * @stable ICU 2.6
194      */
195     public static final int IDS_BINARY_OPERATOR = 18;
196 
197     /**
198      * <p>Binary property IDS_Trinary_Operator (new).</p>
199      * <p?For programmatic determination of Ideographic Description
200      * Sequences.</p>
201      * @stable ICU 2.6
202      */
203     public static final int IDS_TRINARY_OPERATOR = 19;
204 
205     /**
206      * <p>Binary property Join_Control.</p>
207      * <p>Format controls for cursive joining and ligation.</p>
208      * @stable ICU 2.6
209      */
210     public static final int JOIN_CONTROL = 20;
211 
212     /**
213      * <p>Binary property Logical_Order_Exception (new).</p>
214      * <p>Characters that do not use logical order and require special
215      * handling in most processing.</p>
216      * @stable ICU 2.6
217      */
218     public static final int LOGICAL_ORDER_EXCEPTION = 21;
219 
220     /**
221      * <p>Binary property Lowercase.</p>
222      * <p>Same as UCharacter.isULowercase(), different from
223      * UCharacter.islower().</p>
224      * <p>Ll+Other_Lowercase</p>
225      * @stable ICU 2.6
226      */
227     public static final int LOWERCASE = 22;
228 
229     /** <p>Binary property Math.</p>
230      * <p>Sm+Other_Math</p>
231      * @stable ICU 2.6
232      */
233     public static final int MATH = 23;
234 
235     /**
236      * <p>Binary property Noncharacter_Code_Point.</p>
237      * <p>Code points that are explicitly defined as illegal for the encoding
238      * of characters.</p>
239      * @stable ICU 2.6
240      */
241     public static final int NONCHARACTER_CODE_POINT = 24;
242 
243     /**
244      * <p>Binary property Quotation_Mark.</p>
245      * @stable ICU 2.6
246      */
247     public static final int QUOTATION_MARK = 25;
248 
249     /**
250      * <p>Binary property Radical (new).</p>
251      * <p>For programmatic determination of Ideographic Description
252      * Sequences.</p>
253      * @stable ICU 2.6
254      */
255     public static final int RADICAL = 26;
256 
257     /**
258      * <p>Binary property Soft_Dotted (new).</p>
259      * <p>Characters with a "soft dot", like i or j.</p>
260      * <p>An accent placed on these characters causes the dot to disappear.</p>
261      * @stable ICU 2.6
262      */
263     public static final int SOFT_DOTTED = 27;
264 
265     /**
266      * <p>Binary property Terminal_Punctuation.</p>
267      * <p>Punctuation characters that generally mark the end of textual
268      * units.</p>
269      * @stable ICU 2.6
270      */
271     public static final int TERMINAL_PUNCTUATION = 28;
272 
273     /**
274      * <p>Binary property Unified_Ideograph (new).</p>
275      * <p>For programmatic determination of Ideographic Description
276      * Sequences.</p>
277      * @stable ICU 2.6
278      */
279     public static final int UNIFIED_IDEOGRAPH = 29;
280 
281     /**
282      * <p>Binary property Uppercase.</p>
283      * <p>Same as UCharacter.isUUppercase(), different from
284      * UCharacter.isUpperCase().</p>
285      * <p>Lu+Other_Uppercase</p>
286      * @stable ICU 2.6
287      */
288     public static final int UPPERCASE = 30;
289 
290     /**
291      * <p>Binary property White_Space.</p>
292      * <p>Same as UCharacter.isUWhiteSpace(), different from
293      * UCharacter.isSpace() and UCharacter.isWhitespace().</p>
294      * Space characters+TAB+CR+LF-ZWSP-ZWNBSP</p>
295      * @stable ICU 2.6
296      */
297     public static final int WHITE_SPACE = 31;
298 
299     /**
300      * <p>Binary property XID_Continue.</p>
301      * <p>ID_Continue modified to allow closure under normalization forms
302      * NFKC and NFKD.</p>
303      * @stable ICU 2.6
304      */
305     public static final int XID_CONTINUE = 32;
306 
307     /**
308      * <p>Binary property XID_Start.</p>
309      * <p>ID_Start modified to allow closure under normalization forms NFKC
310      * and NFKD.</p>
311      * @stable ICU 2.6
312      */
313     public static final int XID_START = 33;
314 
315     /**
316      * <p>Binary property Case_Sensitive.</p>
317      * <p>Either the source of a case
318      * mapping or _in_ the target of a case mapping. Not the same as
319      * the general category Cased_Letter.</p>
320      * @stable ICU 2.6
321      */
322     public static final int CASE_SENSITIVE = 34;
323 
324     /**
325      * Binary property STerm (new in Unicode 4.0.1).
326      * Sentence Terminal. Used in UAX #29: Text Boundaries
327      * (http://www.unicode.org/reports/tr29/)
328      * @stable ICU 3.0
329      */
330     public static final int S_TERM = 35;
331 
332     /**
333      * Binary property Variation_Selector (new in Unicode 4.0.1).
334      * Indicates all those characters that qualify as Variation Selectors.
335      * For details on the behavior of these characters,
336      * see StandardizedVariants.html and 15.6 Variation Selectors.
337      * @stable ICU 3.0
338      */
339     public static final int VARIATION_SELECTOR = 36;
340 
341     /**
342      * Binary property NFD_Inert.
343      * ICU-specific property for characters that are inert under NFD,
344      * i.e., they do not interact with adjacent characters.
345      * Used for example in normalizing transforms in incremental mode
346      * to find the boundary of safely normalizable text despite possible
347      * text additions.
348      *
349      * There is one such property per normalization form.
350      * These properties are computed as follows - an inert character is:
351      * a) unassigned, or ALL of the following:
352      * b) of combining class 0.
353      * c) not decomposed by this normalization form.
354      * AND if NFC or NFKC,
355      * d) can never compose with a previous character.
356      * e) can never compose with a following character.
357      * f) can never change if another character is added.
358      * Example: a-breve might satisfy all but f, but if you
359      * add an ogonek it changes to a-ogonek + breve
360      *
361      * See also com.ibm.text.UCD.NFSkippable in the ICU4J repository,
362      * and icu/source/common/unormimp.h .
363      * @stable ICU 3.0
364      */
365     public static final int NFD_INERT = 37;
366 
367     /**
368      * Binary property NFKD_Inert.
369      * ICU-specific property for characters that are inert under NFKD,
370      * i.e., they do not interact with adjacent characters.
371      * Used for example in normalizing transforms in incremental mode
372      * to find the boundary of safely normalizable text despite possible
373      * text additions.
374      * @see #NFD_INERT
375      * @stable ICU 3.0
376      */
377     public static final int NFKD_INERT = 38;
378 
379     /**
380      * Binary property NFC_Inert.
381      * ICU-specific property for characters that are inert under NFC,
382      * i.e., they do not interact with adjacent characters.
383      * Used for example in normalizing transforms in incremental mode
384      * to find the boundary of safely normalizable text despite possible
385      * text additions.
386      * @see #NFD_INERT
387      * @stable ICU 3.0
388      */
389     public static final int NFC_INERT = 39;
390 
391     /**
392      * Binary property NFKC_Inert.
393      * ICU-specific property for characters that are inert under NFKC,
394      * i.e., they do not interact with adjacent characters.
395      * Used for example in normalizing transforms in incremental mode
396      * to find the boundary of safely normalizable text despite possible
397      * text additions.
398      * @see #NFD_INERT
399      * @stable ICU 3.0
400      */
401     public static final int NFKC_INERT = 40;
402 
403     /**
404      * Binary Property Segment_Starter.
405      * ICU-specific property for characters that are starters in terms of
406      * Unicode normalization and combining character sequences.
407      * They have ccc=0 and do not occur in non-initial position of the
408      * canonical decomposition of any character
409      * (like " in NFD(a-umlaut) and a Jamo T in an NFD(Hangul LVT)).
410      * ICU uses this property for segmenting a string for generating a set of
411      * canonically equivalent strings, e.g. for canonical closure while
412      * processing collation tailoring rules.
413      * @stable ICU 3.0
414      */
415     public static final int SEGMENT_STARTER = 41;
416 
417     /**
418      * Binary property Pattern_Syntax (new in Unicode 4.1).
419      * See UAX #31 Identifier and Pattern Syntax
420      * (http://www.unicode.org/reports/tr31/)
421      * @stable ICU 3.4
422      */
423     public static final int PATTERN_SYNTAX = 42;
424 
425     /**
426      * Binary property Pattern_White_Space (new in Unicode 4.1).
427      * See UAX #31 Identifier and Pattern Syntax
428      * (http://www.unicode.org/reports/tr31/)
429      * @stable ICU 3.4
430      */
431     public static final int PATTERN_WHITE_SPACE = 43;
432 
433     /**
434      * Binary property alnum (a C/POSIX character class).
435      * Implemented according to the UTS #18 Annex C Standard Recommendation.
436      * See the UCharacter class documentation.
437      * @stable ICU 3.4
438      */
439     public static final int POSIX_ALNUM = 44;
440 
441     /**
442      * Binary property blank (a C/POSIX character class).
443      * Implemented according to the UTS #18 Annex C Standard Recommendation.
444      * See the UCharacter class documentation.
445      * @stable ICU 3.4
446      */
447     public static final int POSIX_BLANK = 45;
448 
449     /**
450      * Binary property graph (a C/POSIX character class).
451      * Implemented according to the UTS #18 Annex C Standard Recommendation.
452      * See the UCharacter class documentation.
453      * @stable ICU 3.4
454      */
455     public static final int POSIX_GRAPH = 46;
456 
457     /**
458      * Binary property print (a C/POSIX character class).
459      * Implemented according to the UTS #18 Annex C Standard Recommendation.
460      * See the UCharacter class documentation.
461      * @stable ICU 3.4
462      */
463     public static final int POSIX_PRINT = 47;
464 
465     /**
466      * Binary property xdigit (a C/POSIX character class).
467      * Implemented according to the UTS #18 Annex C Standard Recommendation.
468      * See the UCharacter class documentation.
469      * @stable ICU 3.4
470      */
471     public static final int POSIX_XDIGIT = 48;
472 
473     /**
474      * Binary property Cased.
475      * For Lowercase, Uppercase and Titlecase characters.
476      * @stable ICU 4.4
477      */
478     public static final int CASED=49;
479     /**
480      * Binary property Case_Ignorable.
481      * Used in context-sensitive case mappings.
482      * @stable ICU 4.4
483      */
484     public static final int CASE_IGNORABLE=50;
485     /**
486      * Binary property Changes_When_Lowercased.
487      * @stable ICU 4.4
488      */
489     public static final int CHANGES_WHEN_LOWERCASED=51;
490     /**
491      * Binary property Changes_When_Uppercased.
492      * @stable ICU 4.4
493      */
494     public static final int CHANGES_WHEN_UPPERCASED=52;
495     /**
496      * Binary property Changes_When_Titlecased.
497      * @stable ICU 4.4
498      */
499     public static final int CHANGES_WHEN_TITLECASED=53;
500     /**
501      * Binary property Changes_When_Casefolded.
502      * @stable ICU 4.4
503      */
504     public static final int CHANGES_WHEN_CASEFOLDED=54;
505     /**
506      * Binary property Changes_When_Casemapped.
507      * @stable ICU 4.4
508      */
509     public static final int CHANGES_WHEN_CASEMAPPED=55;
510     /**
511      * Binary property Changes_When_NFKC_Casefolded.
512      * @stable ICU 4.4
513      */
514     public static final int CHANGES_WHEN_NFKC_CASEFOLDED=56;
515 
516     /**
517      * One more than the last constant for binary Unicode properties.
518      * @stable ICU 2.6
519      */
520     public static final int BINARY_LIMIT = 57;
521 
522     /**
523      * Enumerated property Bidi_Class.
524      * Same as UCharacter.getDirection(int), returns UCharacterDirection values.
525      * @stable ICU 2.4
526      */
527     public static final int BIDI_CLASS = 0x1000;
528 
529     /**
530      * First constant for enumerated/integer Unicode properties.
531      * @stable ICU 2.4
532      */
533     public static final int INT_START = BIDI_CLASS;
534 
535     /**
536      * Enumerated property Block.
537      * Same as UCharacter.UnicodeBlock.of(int), returns UCharacter.UnicodeBlock
538      * values.
539      * @stable ICU 2.4
540      */
541     public static final int BLOCK = 0x1001;
542 
543     /**
544      * Enumerated property Canonical_Combining_Class.
545      * Same as UCharacter.getCombiningClass(int), returns 8-bit numeric values.
546      * @stable ICU 2.4
547      */
548     public static final int CANONICAL_COMBINING_CLASS = 0x1002;
549 
550     /**
551      * Enumerated property Decomposition_Type.
552      * Returns UCharacter.DecompositionType values.
553      * @stable ICU 2.4
554      */
555     public static final int DECOMPOSITION_TYPE = 0x1003;
556 
557     /**
558      * Enumerated property East_Asian_Width.
559      * See http://www.unicode.org/reports/tr11/
560      * Returns UCharacter.EastAsianWidth values.
561      * @stable ICU 2.4
562      */
563     public static final int EAST_ASIAN_WIDTH = 0x1004;
564 
565     /**
566      * Enumerated property General_Category.
567      * Same as UCharacter.getType(int), returns UCharacterCategory values.
568      * @stable ICU 2.4
569      */
570     public static final int GENERAL_CATEGORY = 0x1005;
571 
572     /**
573      * Enumerated property Joining_Group.
574      * Returns UCharacter.JoiningGroup values.
575      * @stable ICU 2.4
576      */
577     public static final int JOINING_GROUP = 0x1006;
578 
579     /**
580      * Enumerated property Joining_Type.
581      * Returns UCharacter.JoiningType values.
582      * @stable ICU 2.4
583      */
584     public static final int JOINING_TYPE = 0x1007;
585 
586     /**
587      * Enumerated property Line_Break.
588      * Returns UCharacter.LineBreak values.
589      * @stable ICU 2.4
590      */
591     public static final int LINE_BREAK = 0x1008;
592 
593     /**
594      * Enumerated property Numeric_Type.
595      * Returns UCharacter.NumericType values.
596      * @stable ICU 2.4
597      */
598     public static final int NUMERIC_TYPE = 0x1009;
599 
600     /**
601      * Enumerated property Script.
602      * Same as UScript.getScript(int), returns UScript values.
603      * @stable ICU 2.4
604      */
605     public static final int SCRIPT = 0x100A;
606 
607     /**
608      * Enumerated property Hangul_Syllable_Type, new in Unicode 4.
609      * Returns UCharacter.HangulSyllableType values.
610      * @stable ICU 2.6
611      */
612     public static final int HANGUL_SYLLABLE_TYPE = 0x100B;
613 
614     /**
615      * Enumerated property NFD_Quick_Check.
616      * Returns numeric values compatible with Normalizer.QuickCheckResult.
617      * @stable ICU 3.0
618      */
619     public static final int NFD_QUICK_CHECK = 0x100C;
620 
621     /**
622      * Enumerated property NFKD_Quick_Check.
623      * Returns numeric values compatible with Normalizer.QuickCheckResult.
624      * @stable ICU 3.0
625      */
626     public static final int NFKD_QUICK_CHECK = 0x100D;
627 
628     /**
629      * Enumerated property NFC_Quick_Check.
630      * Returns numeric values compatible with Normalizer.QuickCheckResult.
631      * @stable ICU 3.0
632      */
633     public static final int NFC_QUICK_CHECK = 0x100E;
634 
635     /**
636      * Enumerated property NFKC_Quick_Check.
637      * Returns numeric values compatible with Normalizer.QuickCheckResult.
638      * @stable ICU 3.0
639      */
640     public static final int NFKC_QUICK_CHECK = 0x100F;
641 
642     /**
643      * Enumerated property Lead_Canonical_Combining_Class.
644      * ICU-specific property for the ccc of the first code point
645      * of the decomposition, or lccc(c)=ccc(NFD(c)[0]).
646      * Useful for checking for canonically ordered text;
647      * see Normalizer.FCD and http://www.unicode.org/notes/tn5/#FCD .
648      * Returns 8-bit numeric values like CANONICAL_COMBINING_CLASS.
649      * @stable ICU 3.0
650      */
651     public static final int LEAD_CANONICAL_COMBINING_CLASS = 0x1010;
652 
653     /**
654      * Enumerated property Trail_Canonical_Combining_Class.
655      * ICU-specific property for the ccc of the last code point
656      * of the decomposition, or lccc(c)=ccc(NFD(c)[last]).
657      * Useful for checking for canonically ordered text;
658      * see Normalizer.FCD and http://www.unicode.org/notes/tn5/#FCD .
659      * Returns 8-bit numeric values like CANONICAL_COMBINING_CLASS.
660      * @stable ICU 3.0
661      */
662     public static final int TRAIL_CANONICAL_COMBINING_CLASS = 0x1011;
663 
664     /**
665      * Enumerated property Grapheme_Cluster_Break (new in Unicode 4.1).
666      * Used in UAX #29: Text Boundaries
667      * (http://www.unicode.org/reports/tr29/)
668      * Returns UCharacter.GraphemeClusterBreak values.
669      * @stable ICU 3.4
670      */
671     public static final int GRAPHEME_CLUSTER_BREAK = 0x1012;
672 
673     /**
674      * Enumerated property Sentence_Break (new in Unicode 4.1).
675      * Used in UAX #29: Text Boundaries
676      * (http://www.unicode.org/reports/tr29/)
677      * Returns UCharacter.SentenceBreak values.
678      * @stable ICU 3.4
679      */
680     public static final int SENTENCE_BREAK = 0x1013;
681 
682     /**
683      * Enumerated property Word_Break (new in Unicode 4.1).
684      * Used in UAX #29: Text Boundaries
685      * (http://www.unicode.org/reports/tr29/)
686      * Returns UCharacter.WordBreak values.
687      * @stable ICU 3.4
688      */
689     public static final int WORD_BREAK = 0x1014;
690 
691     /**
692      * Enumerated property Bidi_Paired_Bracket_Type (new in Unicode 6.3).
693      * Used in UAX #9: Unicode Bidirectional Algorithm
694      * (http://www.unicode.org/reports/tr9/)
695      * Returns UCharacter.BidiPairedBracketType values.
696      * @stable ICU 52
697      */
698     public static final int BIDI_PAIRED_BRACKET_TYPE = 0x1015;
699 
700     /**
701      * One more than the last constant for enumerated/integer Unicode
702      * properties.
703      * @stable ICU 2.4
704      */
705     public static final int INT_LIMIT = 0x1016;
706 
707     /**
708      * Bitmask property General_Category_Mask.
709      * This is the General_Category property returned as a bit mask.
710      * When used in UCharacter.getIntPropertyValue(c),
711      * returns bit masks for UCharacterCategory values where exactly one bit is set.
712      * When used with UCharacter.getPropertyValueName() and UCharacter.getPropertyValueEnum(),
713      * a multi-bit mask is used for sets of categories like "Letters".
714      * @stable ICU 2.4
715      */
716     public static final int GENERAL_CATEGORY_MASK = 0x2000;
717 
718     /**
719      * First constant for bit-mask Unicode properties.
720      * @stable ICU 2.4
721      */
722     public static final int MASK_START = GENERAL_CATEGORY_MASK;
723 
724     /**
725      * One more than the last constant for bit-mask Unicode properties.
726      * @stable ICU 2.4
727      */
728     public static final int MASK_LIMIT = 0x2001;
729 
730     /**
731      * Double property Numeric_Value.
732      * Corresponds to UCharacter.getUnicodeNumericValue(int).
733      * @stable ICU 2.4
734      */
735     public static final int NUMERIC_VALUE = 0x3000;
736 
737     /**
738      * First constant for double Unicode properties.
739      * @stable ICU 2.4
740      */
741     public static final int DOUBLE_START = NUMERIC_VALUE;
742 
743     /**
744      * One more than the last constant for double Unicode properties.
745      * @stable ICU 2.4
746      */
747     public static final int DOUBLE_LIMIT = 0x3001;
748 
749     /**
750      * String property Age.
751      * Corresponds to UCharacter.getAge(int).
752      * @stable ICU 2.4
753      */
754     public static final int AGE = 0x4000;
755 
756     /**
757      * First constant for string Unicode properties.
758      * @stable ICU 2.4
759      */
760     public static final int STRING_START = AGE;
761 
762     /**
763      * String property Bidi_Mirroring_Glyph.
764      * Corresponds to UCharacter.getMirror(int).
765      * @stable ICU 2.4
766      */
767     public static final int BIDI_MIRRORING_GLYPH = 0x4001;
768 
769     /**
770      * String property Case_Folding.
771      * Corresponds to UCharacter.foldCase(String, boolean).
772      * @stable ICU 2.4
773      */
774     public static final int CASE_FOLDING = 0x4002;
775 
776     /**
777      * Deprecated string property ISO_Comment.
778      * Corresponds to UCharacter.getISOComment(int).
779      * @deprecated ICU 49
780      */
781     @Deprecated
782     public static final int ISO_COMMENT = 0x4003;
783 
784     /**
785      * String property Lowercase_Mapping.
786      * Corresponds to UCharacter.toLowerCase(String).
787      * @stable ICU 2.4
788      */
789     public static final int LOWERCASE_MAPPING = 0x4004;
790 
791     /**
792      * String property Name.
793      * Corresponds to UCharacter.getName(int).
794      * @stable ICU 2.4
795      */
796     public static final int NAME = 0x4005;
797 
798     /**
799      * String property Simple_Case_Folding.
800      * Corresponds to UCharacter.foldCase(int, boolean).
801      * @stable ICU 2.4
802      */
803     public static final int SIMPLE_CASE_FOLDING = 0x4006;
804 
805     /**
806      * String property Simple_Lowercase_Mapping.
807      * Corresponds to UCharacter.toLowerCase(int).
808      * @stable ICU 2.4
809      */
810     public static final int SIMPLE_LOWERCASE_MAPPING = 0x4007;
811 
812     /**
813      * String property Simple_Titlecase_Mapping.
814      * Corresponds to UCharacter.toTitleCase(int).
815      * @stable ICU 2.4
816      */
817     public static final int SIMPLE_TITLECASE_MAPPING = 0x4008;
818 
819     /**
820      * String property Simple_Uppercase_Mapping.
821      * Corresponds to UCharacter.toUpperCase(int).
822      * @stable ICU 2.4
823      */
824     public static final int SIMPLE_UPPERCASE_MAPPING = 0x4009;
825 
826     /**
827      * String property Titlecase_Mapping.
828      * Corresponds to UCharacter.toTitleCase(String).
829      * @stable ICU 2.4
830      */
831     public static final int TITLECASE_MAPPING = 0x400A;
832 
833     /**
834      * String property Unicode_1_Name.
835      * This property is of little practical value.
836      * Beginning with ICU 49, ICU APIs return null or an empty string for this property.
837      * Corresponds to UCharacter.getName1_0(int).
838      * @deprecated ICU 49
839      */
840     @Deprecated
841     public static final int UNICODE_1_NAME = 0x400B;
842 
843     /**
844      * String property Uppercase_Mapping.
845      * Corresponds to UCharacter.toUpperCase(String).
846      * @stable ICU 2.4
847      */
848     public static final int UPPERCASE_MAPPING = 0x400C;
849 
850     /**
851      * String property Bidi_Paired_Bracket (new in Unicode 6.3).
852      * Corresponds to UCharacter.getBidiPairedBracket.
853      * @stable ICU 52
854      */
855     public static final int BIDI_PAIRED_BRACKET = 0x400D;
856 
857     /**
858      * One more than the last constant for string Unicode properties.
859      * @stable ICU 2.4
860      */
861     public static final int STRING_LIMIT = 0x400E;
862 
863     /**
864      * Miscellaneous property Script_Extensions (new in Unicode 6.0).
865      * Some characters are commonly used in multiple scripts.
866      * For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
867      * Corresponds to UScript.hasScript and UScript.getScriptExtensions.
868      * @stable ICU 4.6
869      */
870     public static final int SCRIPT_EXTENSIONS=0x7000;
871     /**
872      * First constant for Unicode properties with unusual value types.
873      * @stable ICU 4.6
874      */
875     public static final int OTHER_PROPERTY_START=SCRIPT_EXTENSIONS;
876     /**
877      * One more than the last constant for Unicode properties with unusual value types.
878      * @stable ICU 4.6
879      */
880     public static final int OTHER_PROPERTY_LIMIT=0x7001;
881 
882     /**
883      * Selector constants for UCharacter.getPropertyName() and
884      * UCharacter.getPropertyValueName().  These selectors are used to
885      * choose which name is returned for a given property or value.
886      * All properties and values have a long name.  Most have a short
887      * name, but some do not.  Unicode allows for additional names,
888      * beyond the long and short name, which would be indicated by
889      * LONG + i, where i=1, 2,...
890      *
891      * @see UCharacter#getPropertyName
892      * @see UCharacter#getPropertyValueName
893      * @stable ICU 2.4
894      */
895     public interface NameChoice {
896         /**
897          * Selector for the abbreviated name of a property or value.
898          * Most properties and values have a short name; those that do
899          * not return null.
900          * @stable ICU 2.4
901          */
902         static final int SHORT = 0;
903 
904         /**
905          * Selector for the long name of a property or value.  All
906          * properties and values have a long name.
907          * @stable ICU 2.4
908          */
909         static final int LONG = 1;
910 
911         /**
912          * The number of predefined property name choices.  Individual
913          * properties or values may have more than COUNT aliases.
914          * @stable ICU 2.4
915          */
916         static final int COUNT = 2;
917     }
918 }
919