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