summaryrefslogtreecommitdiff
path: root/android_icu4j/src/main/java/android/icu/lang/UProperty.java
blob: 8e4cbb0970b94de1a345699d87ff5be2fd1fed73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
/* GENERATED SOURCE. DO NOT MODIFY. */
/**
*******************************************************************************
* Copyright (C) 1996-2014, International Business Machines Corporation and
* others. All Rights Reserved.
*******************************************************************************
*/

package android.icu.lang;

/**
 * <p>Selection constants for Unicode properties.
 * <p>These constants are used in functions like
 * UCharacter.hasBinaryProperty(int) to select one of the Unicode properties.
 *
 * <p>The properties APIs are intended to reflect Unicode properties as
 * defined in the Unicode Character Database (UCD) and Unicode Technical
 * Reports (UTR).
 * <p>For details about the properties see <a href=http://www.unicode.org>
 * http://www.unicode.org</a>.
 * <p>For names of Unicode properties see the UCD file PropertyAliases.txt.
 *
 * <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.
 * @author Syn Wee Quek
 * @see android.icu.lang.UCharacter
 */
public interface UProperty
{
    // public data member --------------------------------------------------

    /**
     * Special value indicating undefined property.
     * @deprecated This API is ICU internal only.
     * @hide original deprecated declaration
     * @hide draft / provisional / internal are hidden on Android
     */
    @Deprecated
    public static final int UNDEFINED = -1;

    /**
     * <p>Binary property Alphabetic.
     * <p>Property for UCharacter.isUAlphabetic(), different from the property
     * in UCharacter.isalpha().
     * <p>Lu + Ll + Lt + Lm + Lo + Nl + Other_Alphabetic.
     */
    public static final int ALPHABETIC = 0;

    /**
     * First constant for binary Unicode properties.
     */
    public static final int BINARY_START = ALPHABETIC;

    /**
     * Binary property ASCII_Hex_Digit (0-9 A-F a-f).
     */
    public static final int ASCII_HEX_DIGIT = 1;

    /**
     * <p>Binary property Bidi_Control.
     * <p>Format controls which have specific functions in the Bidi Algorithm.
     */
    public static final int BIDI_CONTROL = 2;

    /**
     * <p>Binary property Bidi_Mirrored.
     * <p>Characters that may change display in RTL text.
     * <p>Property for UCharacter.isMirrored().
     * <p>See Bidi Algorithm; UTR 9.
     */
    public static final int BIDI_MIRRORED = 3;

    /**
     * <p>Binary property Dash.
     * <p>Variations of dashes.
     */
    public static final int DASH = 4;

    /**
     * <p>Binary property Default_Ignorable_Code_Point (new).
     *
     * <p>Property that indicates codepoint is ignorable in most processing.
     *
     * <p>Codepoints (2060..206F, FFF0..FFFB, E0000..E0FFF) +
     * Other_Default_Ignorable_Code_Point + (Cf + Cc + Cs - White_Space)
     */
    public static final int DEFAULT_IGNORABLE_CODE_POINT = 5;

    /**
     * <p>Binary property Deprecated (new).
     * <p>The usage of deprecated characters is strongly discouraged.
     */
    public static final int DEPRECATED = 6;

    /**
     * <p>Binary property Diacritic.
     * <p>Characters that linguistically modify the meaning of another
     * character to which they apply.
     */
    public static final int DIACRITIC = 7;

    /**
     * <p>Binary property Extender.
     * <p>Extend the value or shape of a preceding alphabetic character, e.g.
     * length and iteration marks.
     */
    public static final int EXTENDER = 8;

    /**
     * <p>Binary property Full_Composition_Exclusion.
     * <p>CompositionExclusions.txt + Singleton Decompositions +
     * Non-Starter Decompositions.
     */
    public static final int FULL_COMPOSITION_EXCLUSION = 9;

    /**
     * <p>Binary property Grapheme_Base (new).
     * <p>For programmatic determination of grapheme cluster boundaries.
     * [0..10FFFF]-Cc-Cf-Cs-Co-Cn-Zl-Zp-Grapheme_Link-Grapheme_Extend-CGJ
     */
    public static final int GRAPHEME_BASE = 10;

    /**
     * <p>Binary property Grapheme_Extend (new).
     * <p>For programmatic determination of grapheme cluster boundaries.
     * <p>Me+Mn+Mc+Other_Grapheme_Extend-Grapheme_Link-CGJ
     */
    public static final int GRAPHEME_EXTEND = 11;

    /**
     * <p>Binary property Grapheme_Link (new).
     * <p>For programmatic determination of grapheme cluster boundaries.
     */
    public static final int GRAPHEME_LINK = 12;

    /**
     * <p>Binary property Hex_Digit.
     * <p>Characters commonly used for hexadecimal numbers.
     */
    public static final int HEX_DIGIT = 13;

    /**
     * <p>Binary property Hyphen.
     * <p>Dashes used to mark connections between pieces of words, plus the 
     * Katakana middle dot.
     */ 
    public static final int HYPHEN = 14; 

    /** 
     * <p>Binary property ID_Continue.
     * <p>Characters that can continue an identifier.
     * <p>ID_Start+Mn+Mc+Nd+Pc
     */ 
    public static final int ID_CONTINUE = 15; 

    /** 
     * <p>Binary property ID_Start.
     * <p>Characters that can start an identifier.
     * <p>Lu+Ll+Lt+Lm+Lo+Nl
     */ 
    public static final int ID_START = 16; 

    /** 
     * <p>Binary property Ideographic.
     * <p>CJKV ideographs.
     */ 
    public static final int IDEOGRAPHIC = 17; 

    /** 
     * <p>Binary property IDS_Binary_Operator (new).
     * <p>For programmatic determination of Ideographic Description Sequences.
     */ 
    public static final int IDS_BINARY_OPERATOR = 18; 

    /** 
     * <p>Binary property IDS_Trinary_Operator (new).
     * <p>For programmatic determination of Ideographic Description
     * Sequences.
     */ 
    public static final int IDS_TRINARY_OPERATOR = 19; 

    /** 
     * <p>Binary property Join_Control.
     * <p>Format controls for cursive joining and ligation.
     */ 
    public static final int JOIN_CONTROL = 20; 

    /** 
     * <p>Binary property Logical_Order_Exception (new).
     * <p>Characters that do not use logical order and require special 
     * handling in most processing.
     */ 
    public static final int LOGICAL_ORDER_EXCEPTION = 21; 

    /** 
     * <p>Binary property Lowercase.
     * <p>Same as UCharacter.isULowercase(), different from 
     * UCharacter.islower().
     * <p>Ll+Other_Lowercase
     */ 
    public static final int LOWERCASE = 22; 

    /** <p>Binary property Math.
     * <p>Sm+Other_Math
     */ 
    public static final int MATH = 23; 

    /** 
     * <p>Binary property Noncharacter_Code_Point.
     * <p>Code points that are explicitly defined as illegal for the encoding 
     * of characters.
     */ 
    public static final int NONCHARACTER_CODE_POINT = 24; 

    /** 
     * <p>Binary property Quotation_Mark.
     */ 
    public static final int QUOTATION_MARK = 25; 

    /** 
     * <p>Binary property Radical (new).
     * <p>For programmatic determination of Ideographic Description 
     * Sequences.
     */ 
    public static final int RADICAL = 26; 

    /** 
     * <p>Binary property Soft_Dotted (new).
     * <p>Characters with a "soft dot", like i or j.
     * <p>An accent placed on these characters causes the dot to disappear.
     */ 
    public static final int SOFT_DOTTED = 27; 

    /** 
     * <p>Binary property Terminal_Punctuation.
     * <p>Punctuation characters that generally mark the end of textual 
     * units.
     */ 
    public static final int TERMINAL_PUNCTUATION = 28; 

    /** 
     * <p>Binary property Unified_Ideograph (new).
     * <p>For programmatic determination of Ideographic Description 
     * Sequences.
     */ 
    public static final int UNIFIED_IDEOGRAPH = 29; 

    /** 
     * <p>Binary property Uppercase.
     * <p>Same as UCharacter.isUUppercase(), different from 
     * UCharacter.isUpperCase().
     * <p>Lu+Other_Uppercase
     */ 
    public static final int UPPERCASE = 30; 

    /** 
     * <p>Binary property White_Space.
     * <p>Same as UCharacter.isUWhiteSpace(), different from 
     * UCharacter.isSpace() and UCharacter.isWhitespace().
     * Space characters+TAB+CR+LF-ZWSP-ZWNBSP
     */ 
    public static final int WHITE_SPACE = 31; 

    /** 
     * <p>Binary property XID_Continue.
     * <p>ID_Continue modified to allow closure under normalization forms 
     * NFKC and NFKD.
     */ 
    public static final int XID_CONTINUE = 32; 

    /** 
     * <p>Binary property XID_Start.
     * <p>ID_Start modified to allow closure under normalization forms NFKC 
     * and NFKD.
     */ 
    public static final int XID_START = 33; 

    /**
     * <p>Binary property Case_Sensitive.
     * <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.
     */
    public static final int CASE_SENSITIVE = 34;

    /**
     * Binary property STerm (new in Unicode 4.0.1).
     * Sentence Terminal. Used in UAX #29: Text Boundaries
     * (http://www.unicode.org/reports/tr29/)
     */
    public static final int S_TERM = 35;

    /**
     * Binary property Variation_Selector (new in Unicode 4.0.1).
     * Indicates all those characters that qualify as Variation Selectors.
     * For details on the behavior of these characters,
     * see StandardizedVariants.html and 15.6 Variation Selectors.
     */
    public static final int VARIATION_SELECTOR = 36;

    /** 
     * Binary property NFD_Inert.
     * ICU-specific property for characters that are inert under NFD,
     * i.e., they do not interact with adjacent characters.
     * Used for example in normalizing transforms in incremental mode
     * to find the boundary of safely normalizable text despite possible
     * text additions.
     *
     * There is one such property per normalization form.
     * These properties are computed as follows - an inert character is:
     * a) unassigned, or ALL of the following:
     * b) of combining class 0.
     * c) not decomposed by this normalization form.
     * AND if NFC or NFKC,
     * d) can never compose with a previous character.
     * e) can never compose with a following character.
     * f) can never change if another character is added.
     * Example: a-breve might satisfy all but f, but if you
     * add an ogonek it changes to a-ogonek + breve
     *
     * See also com.ibm.text.UCD.NFSkippable in the ICU4J repository,
     * and icu/source/common/unormimp.h .
     */
    public static final int NFD_INERT = 37;

    /** 
     * Binary property NFKD_Inert.
     * ICU-specific property for characters that are inert under NFKD,
     * i.e., they do not interact with adjacent characters.
     * Used for example in normalizing transforms in incremental mode
     * to find the boundary of safely normalizable text despite possible
     * text additions.
     * @see #NFD_INERT
     */
    public static final int NFKD_INERT = 38;

    /** 
     * Binary property NFC_Inert.
     * ICU-specific property for characters that are inert under NFC,
     * i.e., they do not interact with adjacent characters.
     * Used for example in normalizing transforms in incremental mode
     * to find the boundary of safely normalizable text despite possible
     * text additions.
     * @see #NFD_INERT
     */
    public static final int NFC_INERT = 39;

    /** 
     * Binary property NFKC_Inert.
     * ICU-specific property for characters that are inert under NFKC,
     * i.e., they do not interact with adjacent characters.
     * Used for example in normalizing transforms in incremental mode
     * to find the boundary of safely normalizable text despite possible
     * text additions.
     * @see #NFD_INERT
     */
    public static final int NFKC_INERT = 40;

    /**
     * Binary Property Segment_Starter.
     * ICU-specific property for characters that are starters in terms of
     * Unicode normalization and combining character sequences.
     * They have ccc=0 and do not occur in non-initial position of the
     * canonical decomposition of any character
     * (like " in NFD(a-umlaut) and a Jamo T in an NFD(Hangul LVT)).
     * ICU uses this property for segmenting a string for generating a set of
     * canonically equivalent strings, e.g. for canonical closure while
     * processing collation tailoring rules.
     */
    public static final int SEGMENT_STARTER = 41;

    /**
     * Binary property Pattern_Syntax (new in Unicode 4.1).
     * See UAX #31 Identifier and Pattern Syntax
     * (http://www.unicode.org/reports/tr31/)
     */
    public static final int PATTERN_SYNTAX = 42;

    /**
     * Binary property Pattern_White_Space (new in Unicode 4.1).
     * See UAX #31 Identifier and Pattern Syntax
     * (http://www.unicode.org/reports/tr31/)
     */
    public static final int PATTERN_WHITE_SPACE = 43;

    /**
     * Binary property alnum (a C/POSIX character class).
     * Implemented according to the UTS #18 Annex C Standard Recommendation.
     * See the UCharacter class documentation.
     */
    public static final int POSIX_ALNUM = 44;

    /**
     * Binary property blank (a C/POSIX character class).
     * Implemented according to the UTS #18 Annex C Standard Recommendation.
     * See the UCharacter class documentation.
     */
    public static final int POSIX_BLANK = 45;

    /**
     * Binary property graph (a C/POSIX character class).
     * Implemented according to the UTS #18 Annex C Standard Recommendation.
     * See the UCharacter class documentation.
     */
    public static final int POSIX_GRAPH = 46;

    /**
     * Binary property print (a C/POSIX character class).
     * Implemented according to the UTS #18 Annex C Standard Recommendation.
     * See the UCharacter class documentation.
     */
    public static final int POSIX_PRINT = 47;

    /**
     * Binary property xdigit (a C/POSIX character class).
     * Implemented according to the UTS #18 Annex C Standard Recommendation.
     * See the UCharacter class documentation.
     */
    public static final int POSIX_XDIGIT = 48;

    /**
     * Binary property Cased.
     * For Lowercase, Uppercase and Titlecase characters.
     */
    public static final int CASED=49;
    /**
     * Binary property Case_Ignorable.
     * Used in context-sensitive case mappings.
     */
    public static final int CASE_IGNORABLE=50;
    /**
     * Binary property Changes_When_Lowercased.
     */
    public static final int CHANGES_WHEN_LOWERCASED=51;
    /**
     * Binary property Changes_When_Uppercased.
     */
    public static final int CHANGES_WHEN_UPPERCASED=52;
    /**
     * Binary property Changes_When_Titlecased.
     */
    public static final int CHANGES_WHEN_TITLECASED=53;
    /**
     * Binary property Changes_When_Casefolded.
     */
    public static final int CHANGES_WHEN_CASEFOLDED=54;
    /**
     * Binary property Changes_When_Casemapped.
     */
    public static final int CHANGES_WHEN_CASEMAPPED=55;
    /**
     * Binary property Changes_When_NFKC_Casefolded.
     */
    public static final int CHANGES_WHEN_NFKC_CASEFOLDED=56;

    /** 
     * One more than the last constant for binary Unicode properties. 
     */
    public static final int BINARY_LIMIT = 57;

    /** 
     * Enumerated property Bidi_Class.
     * Same as UCharacter.getDirection(int), returns UCharacterDirection values. 
     */
    public static final int BIDI_CLASS = 0x1000;

    /** 
     * First constant for enumerated/integer Unicode properties. 
     */
    public static final int INT_START = BIDI_CLASS;

    /** 
     * Enumerated property Block.
     * Same as UCharacter.UnicodeBlock.of(int), returns UCharacter.UnicodeBlock 
     * values. 
     */
    public static final int BLOCK = 0x1001;

    /** 
     * Enumerated property Canonical_Combining_Class.
     * Same as UCharacter.getCombiningClass(int), returns 8-bit numeric values. 
     */
    public static final int CANONICAL_COMBINING_CLASS = 0x1002;

    /** 
     * Enumerated property Decomposition_Type.
     * Returns UCharacter.DecompositionType values. 
     */
    public static final int DECOMPOSITION_TYPE = 0x1003;

    /** 
     * Enumerated property East_Asian_Width.
     * See http://www.unicode.org/reports/tr11/
     * Returns UCharacter.EastAsianWidth values. 
     */
    public static final int EAST_ASIAN_WIDTH = 0x1004;

    /** 
     * Enumerated property General_Category.
     * Same as UCharacter.getType(int), returns UCharacterCategory values. 
     */
    public static final int GENERAL_CATEGORY = 0x1005;

    /** 
     * Enumerated property Joining_Group.
     * Returns UCharacter.JoiningGroup values. 
     */
    public static final int JOINING_GROUP = 0x1006;

    /** 
     * Enumerated property Joining_Type.
     * Returns UCharacter.JoiningType values. 
     */
    public static final int JOINING_TYPE = 0x1007;

    /** 
     * Enumerated property Line_Break.
     * Returns UCharacter.LineBreak values. 
     */
    public static final int LINE_BREAK = 0x1008;

    /** 
     * Enumerated property Numeric_Type.
     * Returns UCharacter.NumericType values. 
     */
    public static final int NUMERIC_TYPE = 0x1009;

    /** 
     * Enumerated property Script.
     * Same as UScript.getScript(int), returns UScript values. 
     */
    public static final int SCRIPT = 0x100A;
    
    /** 
     * Enumerated property Hangul_Syllable_Type, new in Unicode 4.
     * Returns UCharacter.HangulSyllableType values. 
     */
    public static final int HANGUL_SYLLABLE_TYPE = 0x100B;

    /**
     * Enumerated property NFD_Quick_Check.
     * Returns numeric values compatible with Normalizer.QuickCheckResult.
     */
    public static final int NFD_QUICK_CHECK = 0x100C;

    /**
     * Enumerated property NFKD_Quick_Check.
     * Returns numeric values compatible with Normalizer.QuickCheckResult.
     */
    public static final int NFKD_QUICK_CHECK = 0x100D;

    /**
     * Enumerated property NFC_Quick_Check.
     * Returns numeric values compatible with Normalizer.QuickCheckResult.
     */
    public static final int NFC_QUICK_CHECK = 0x100E;

    /**
     * Enumerated property NFKC_Quick_Check.
     * Returns numeric values compatible with Normalizer.QuickCheckResult.
     */
    public static final int NFKC_QUICK_CHECK = 0x100F;

    /**
     * Enumerated property Lead_Canonical_Combining_Class.
     * ICU-specific property for the ccc of the first code point
     * of the decomposition, or lccc(c)=ccc(NFD(c)[0]).
     * Useful for checking for canonically ordered text;
     * see Normalizer.FCD and http://www.unicode.org/notes/tn5/#FCD .
     * Returns 8-bit numeric values like CANONICAL_COMBINING_CLASS.
     */
    public static final int LEAD_CANONICAL_COMBINING_CLASS = 0x1010;

    /**
     * Enumerated property Trail_Canonical_Combining_Class.
     * ICU-specific property for the ccc of the last code point
     * of the decomposition, or lccc(c)=ccc(NFD(c)[last]).
     * Useful for checking for canonically ordered text;
     * see Normalizer.FCD and http://www.unicode.org/notes/tn5/#FCD .
     * Returns 8-bit numeric values like CANONICAL_COMBINING_CLASS.
     */
    public static final int TRAIL_CANONICAL_COMBINING_CLASS = 0x1011;

    /**
     * Enumerated property Grapheme_Cluster_Break (new in Unicode 4.1).
     * Used in UAX #29: Text Boundaries
     * (http://www.unicode.org/reports/tr29/)
     * Returns UCharacter.GraphemeClusterBreak values.
     */
    public static final int GRAPHEME_CLUSTER_BREAK = 0x1012;

    /**
     * Enumerated property Sentence_Break (new in Unicode 4.1).
     * Used in UAX #29: Text Boundaries
     * (http://www.unicode.org/reports/tr29/)
     * Returns UCharacter.SentenceBreak values.
     */
    public static final int SENTENCE_BREAK = 0x1013;

    /**
     * Enumerated property Word_Break (new in Unicode 4.1).
     * Used in UAX #29: Text Boundaries
     * (http://www.unicode.org/reports/tr29/)
     * Returns UCharacter.WordBreak values.
     */
    public static final int WORD_BREAK = 0x1014;

    /**
     * Enumerated property Bidi_Paired_Bracket_Type (new in Unicode 6.3).
     * Used in UAX #9: Unicode Bidirectional Algorithm
     * (http://www.unicode.org/reports/tr9/)
     * Returns UCharacter.BidiPairedBracketType values.
     */
    public static final int BIDI_PAIRED_BRACKET_TYPE = 0x1015;

    /** 
     * One more than the last constant for enumerated/integer Unicode 
     * properties. 
     */
    public static final int INT_LIMIT = 0x1016;

    /** 
     * 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". 
     */ 
    public static final int GENERAL_CATEGORY_MASK = 0x2000; 

    /** 
     * First constant for bit-mask Unicode properties. 
     */
    public static final int MASK_START = GENERAL_CATEGORY_MASK;

    /** 
     * One more than the last constant for bit-mask Unicode properties. 
     */ 
    public static final int MASK_LIMIT = 0x2001; 
    
    /**
     * Double property Numeric_Value.
     * Corresponds to UCharacter.getUnicodeNumericValue(int).
     */
    public static final int NUMERIC_VALUE = 0x3000;

    /**
     * First constant for double Unicode properties.
     */
    public static final int DOUBLE_START = NUMERIC_VALUE;

    /**
     * One more than the last constant for double Unicode properties.
     */
    public static final int DOUBLE_LIMIT = 0x3001;

    /**
     * String property Age.
     * Corresponds to UCharacter.getAge(int).
     */
    public static final int AGE = 0x4000;

    /**
     * First constant for string Unicode properties.
     */
    public static final int STRING_START = AGE;

    /**
     * String property Bidi_Mirroring_Glyph.
     * Corresponds to UCharacter.getMirror(int).
     */
    public static final int BIDI_MIRRORING_GLYPH = 0x4001;

    /**
     * String property Case_Folding.
     * Corresponds to UCharacter.foldCase(String, boolean).
     */
    public static final int CASE_FOLDING = 0x4002;

    /**
     * Deprecated string property ISO_Comment.
     * Corresponds to UCharacter.getISOComment(int).
     * @deprecated ICU 49
     * @hide original deprecated declaration
     */
    @Deprecated
    public static final int ISO_COMMENT = 0x4003;

    /**
     * String property Lowercase_Mapping.
     * Corresponds to UCharacter.toLowerCase(String).
     */
    public static final int LOWERCASE_MAPPING = 0x4004;

    /**
     * String property Name.
     * Corresponds to UCharacter.getName(int).
     */
    public static final int NAME = 0x4005;

    /**
     * String property Simple_Case_Folding.
     * Corresponds to UCharacter.foldCase(int, boolean).
     */
    public static final int SIMPLE_CASE_FOLDING = 0x4006;

    /**
     * String property Simple_Lowercase_Mapping.
     * Corresponds to UCharacter.toLowerCase(int).
     */
    public static final int SIMPLE_LOWERCASE_MAPPING = 0x4007;

    /**
     * String property Simple_Titlecase_Mapping.
     * Corresponds to UCharacter.toTitleCase(int).
     */
    public static final int SIMPLE_TITLECASE_MAPPING = 0x4008;

    /**
     * String property Simple_Uppercase_Mapping.
     * Corresponds to UCharacter.toUpperCase(int).
     */
    public static final int SIMPLE_UPPERCASE_MAPPING = 0x4009;

    /**
     * String property Titlecase_Mapping.
     * Corresponds to UCharacter.toTitleCase(String).
     */
    public static final int TITLECASE_MAPPING = 0x400A;

    /**
     * String property Unicode_1_Name.
     * This property is of little practical value.
     * Beginning with ICU 49, ICU APIs return null or an empty string for this property.
     * Corresponds to UCharacter.getName1_0(int).
     * @deprecated ICU 49
     * @hide original deprecated declaration
     */
    @Deprecated
    public static final int UNICODE_1_NAME = 0x400B;

    /**
     * String property Uppercase_Mapping.
     * Corresponds to UCharacter.toUpperCase(String).
     */
    public static final int UPPERCASE_MAPPING = 0x400C;

    /**
     * String property Bidi_Paired_Bracket (new in Unicode 6.3).
     * Corresponds to UCharacter.getBidiPairedBracket.
     */
    public static final int BIDI_PAIRED_BRACKET = 0x400D;

    /**
     * One more than the last constant for string Unicode properties.
     */
    public static final int STRING_LIMIT = 0x400E;

    /**
     * Miscellaneous property Script_Extensions (new in Unicode 6.0).
     * Some characters are commonly used in multiple scripts.
     * For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
     * Corresponds to UScript.hasScript and UScript.getScriptExtensions.
     */
    public static final int SCRIPT_EXTENSIONS=0x7000;
    /**
     * First constant for Unicode properties with unusual value types.
     */
    public static final int OTHER_PROPERTY_START=SCRIPT_EXTENSIONS;
    /**
     * One more than the last constant for Unicode properties with unusual value types.
     */
    public static final int OTHER_PROPERTY_LIMIT=0x7001;

    /**
     * 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
     */
    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.
         */
        static final int SHORT = 0;

        /**
         * Selector for the long name of a property or value.  All
         * properties and values have a long name.
         */
        static final int LONG = 1;

        /**
         * The number of predefined property name choices.  Individual
         * properties or values may have more than COUNT aliases.
         */
        static final int COUNT = 2;
    }
}