1 /*
   2  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   3  *
   4  * This code is free software; you can redistribute it and/or modify it
   5  * under the terms of the GNU General Public License version 2 only, as
   6  * published by the Free Software Foundation.  Oracle designates this
   7  * particular file as subject to the "Classpath" exception as provided
   8  * by Oracle in the LICENSE file that accompanied this code.
   9  *
  10  * This code is distributed in the hope that it will be useful, but WITHOUT
  11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13  * version 2 for more details (a copy is included in the LICENSE file that
  14  * accompanied this code).
  15  *
  16  * You should have received a copy of the GNU General Public License version
  17  * 2 along with this work; if not, write to the Free Software Foundation,
  18  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  19  *
  20  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  21  * or visit www.oracle.com if you need additional information or have any
  22  * questions.
  23  */
  24 /*
  25 /**
  26  *******************************************************************************
  27  * Copyright (C) 2004, International Business Machines Corporation and         *
  28  * others. All Rights Reserved.                                                *
  29  *******************************************************************************
  30  */
  31 // CHANGELOG
  32 //      2005-05-19 Edward Wang
  33 //          - copy this file from icu4jsrc_3_2/src/com/ibm/icu/lang/UCharacterEnums.java
  34 //          - move from package com.ibm.icu.lang to package sun.net.idn
  35 //
  36 //      2011-09-06 Kurchi Subhra Hazra
  37 //          - Added @Deprecated tag to the following:
  38 //            - class UCharacterEnums
  39 //            - interfaces ECharacterCategory, ECharacterDirection
  40 //            - fields INITIAL_QUOTE_PUNCTUATION, FINAL_QUOTE_PUNCTUATION,
  41 //              DIRECTIONALITY_LEFT_TO_RIGHT, DIRECTIONALITY_RIGHT_TO_LEFT,
  42 //              DIRECTIONALITY_EUROPEAN_NUMBER, DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR
  43 //              DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR, DIRECTIONALITY_ARABIC_NUMBER,
  44 //              DIRECTIONALITY_COMMON_NUMBER_SEPARATOR, DIRECTIONALITY_PARAGRAPH_SEPARATOR,
  45 //              DIRECTIONALITY_SEGMENT_SEPARATOR, DIRECTIONALITY_WHITESPACE,
  46 //              DIRECTIONALITY_OTHER_NEUTRALS, DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING,
  47 //              DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE, DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC,
  48 //              DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING, DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE,
  49 //              DIRECTIONALITY_POP_DIRECTIONAL_FORMAT, DIRECTIONALITY_NON_SPACING_MARK,
  50 //              DIRECTIONALITY_BOUNDARY_NEUTRAL, DIRECTIONALITY_UNDEFINED
  51 //
  52 
  53 package sun.net.idn;
  54 
  55 /**
  56  * A container for the different 'enumerated types' used by UCharacter.
  57  * @draft ICU 3.0
  58  * @deprecated This is a draft API and might change in a future release of ICU.
  59  */
  60 
  61 @Deprecated
  62 class UCharacterEnums {
  63 
  64     /** This is just a namespace, it is not instantiatable. */
  65     private UCharacterEnums() {};
  66 
  67     /**
  68      * 'Enum' for the CharacterCategory constants.  These constants are
  69      * compatible in name <b>but not in value</b> with those defined in
  70      * <code>java.lang.Character</code>.
  71      * @see UCharacterCategory
  72      * @draft ICU 3.0
  73      * @deprecated This is a draft API and might change in a future release of ICU.
  74      */
  75     @Deprecated
  76     public static interface ECharacterCategory {
  77         /**
  78          * Unassigned character type
  79          * @stable ICU 2.1
  80          */
  81         public static final int UNASSIGNED              = 0;
  82 
  83         /**
  84          * Character type Cn
  85          * Not Assigned (no characters in [UnicodeData.txt] have this property)
  86          * @stable ICU 2.6
  87          */
  88         public static final int GENERAL_OTHER_TYPES     = 0;
  89 
  90         /**
  91          * Character type Lu
  92          * @stable ICU 2.1
  93          */
  94         public static final int UPPERCASE_LETTER        = 1;
  95 
  96         /**
  97          * Character type Ll
  98          * @stable ICU 2.1
  99          */
 100         public static final int LOWERCASE_LETTER        = 2;
 101 
 102         /**
 103          * Character type Lt
 104          * @stable ICU 2.1
 105          */
 106 
 107         public static final int TITLECASE_LETTER        = 3;
 108 
 109         /**
 110          * Character type Lm
 111          * @stable ICU 2.1
 112          */
 113         public static final int MODIFIER_LETTER         = 4;
 114 
 115         /**
 116          * Character type Lo
 117          * @stable ICU 2.1
 118          */
 119         public static final int OTHER_LETTER            = 5;
 120 
 121         /**
 122          * Character type Mn
 123          * @stable ICU 2.1
 124          */
 125         public static final int NON_SPACING_MARK        = 6;
 126 
 127         /**
 128          * Character type Me
 129          * @stable ICU 2.1
 130          */
 131         public static final int ENCLOSING_MARK          = 7;
 132 
 133         /**
 134          * Character type Mc
 135          * @stable ICU 2.1
 136          */
 137         public static final int COMBINING_SPACING_MARK  = 8;
 138 
 139         /**
 140          * Character type Nd
 141          * @stable ICU 2.1
 142          */
 143         public static final int DECIMAL_DIGIT_NUMBER    = 9;
 144 
 145         /**
 146          * Character type Nl
 147          * @stable ICU 2.1
 148          */
 149         public static final int LETTER_NUMBER           = 10;
 150 
 151         /**
 152          * Character type No
 153          * @stable ICU 2.1
 154          */
 155         public static final int OTHER_NUMBER            = 11;
 156 
 157         /**
 158          * Character type Zs
 159          * @stable ICU 2.1
 160          */
 161         public static final int SPACE_SEPARATOR         = 12;
 162 
 163         /**
 164          * Character type Zl
 165          * @stable ICU 2.1
 166          */
 167         public static final int LINE_SEPARATOR          = 13;
 168 
 169         /**
 170          * Character type Zp
 171          * @stable ICU 2.1
 172          */
 173         public static final int PARAGRAPH_SEPARATOR     = 14;
 174 
 175         /**
 176          * Character type Cc
 177          * @stable ICU 2.1
 178          */
 179         public static final int CONTROL                 = 15;
 180 
 181         /**
 182          * Character type Cf
 183          * @stable ICU 2.1
 184          */
 185         public static final int FORMAT                  = 16;
 186 
 187         /**
 188          * Character type Co
 189          * @stable ICU 2.1
 190          */
 191         public static final int PRIVATE_USE             = 17;
 192 
 193         /**
 194          * Character type Cs
 195          * @stable ICU 2.1
 196          */
 197         public static final int SURROGATE               = 18;
 198 
 199         /**
 200          * Character type Pd
 201          * @stable ICU 2.1
 202          */
 203         public static final int DASH_PUNCTUATION        = 19;
 204 
 205         /**
 206          * Character type Ps
 207          * @stable ICU 2.1
 208          */
 209         public static final int START_PUNCTUATION       = 20;
 210 
 211         /**
 212          * Character type Pe
 213          * @stable ICU 2.1
 214          */
 215         public static final int END_PUNCTUATION         = 21;
 216 
 217         /**
 218          * Character type Pc
 219          * @stable ICU 2.1
 220          */
 221         public static final int CONNECTOR_PUNCTUATION   = 22;
 222 
 223         /**
 224          * Character type Po
 225          * @stable ICU 2.1
 226          */
 227         public static final int OTHER_PUNCTUATION       = 23;
 228 
 229         /**
 230          * Character type Sm
 231          * @stable ICU 2.1
 232          */
 233         public static final int MATH_SYMBOL             = 24;
 234 
 235         /**
 236          * Character type Sc
 237          * @stable ICU 2.1
 238          */
 239         public static final int CURRENCY_SYMBOL         = 25;
 240 
 241         /**
 242          * Character type Sk
 243          * @stable ICU 2.1
 244          */
 245         public static final int MODIFIER_SYMBOL         = 26;
 246 
 247         /**
 248          * Character type So
 249          * @stable ICU 2.1
 250          */
 251         public static final int OTHER_SYMBOL            = 27;
 252 
 253         /**
 254          * Character type Pi
 255          * @see #INITIAL_QUOTE_PUNCTUATION
 256          * @stable ICU 2.1
 257          */
 258         public static final int INITIAL_PUNCTUATION     = 28;
 259 
 260         /**
 261          * Character type Pi
 262          * This name is compatible with java.lang.Character's name for this type.
 263          * @see #INITIAL_PUNCTUATION
 264          * @draft ICU 2.8
 265      * @deprecated This is a draft API and might change in a future release of ICU.
 266          */
 267         @Deprecated
 268         public static final int INITIAL_QUOTE_PUNCTUATION = 28;
 269 
 270         /**
 271          * Character type Pf
 272          * @see #FINAL_QUOTE_PUNCTUATION
 273          * @stable ICU 2.1
 274          */
 275         public static final int FINAL_PUNCTUATION       = 29;
 276 
 277         /**
 278          * Character type Pf
 279          * This name is compatible with java.lang.Character's name for this type.
 280          * @see #FINAL_PUNCTUATION
 281          * @draft ICU 2.8
 282      * @deprecated This is a draft API and might change in a future release of ICU.
 283          */
 284         @Deprecated
 285         public static final int FINAL_QUOTE_PUNCTUATION   = 29;
 286 
 287         /**
 288          * Character type count
 289          * @stable ICU 2.1
 290          */
 291         public static final int CHAR_CATEGORY_COUNT     = 30;
 292     }
 293 
 294     /**
 295      * 'Enum' for the CharacterDirection constants.  There are two sets
 296      * of names, those used in ICU, and those used in the JDK.  The
 297      * JDK constants are compatible in name <b>but not in value</b>
 298      * with those defined in <code>java.lang.Character</code>.
 299      * @see UCharacterDirection
 300      * @draft ICU 3.0
 301      * @deprecated This is a draft API and might change in a future release of ICU.
 302      */
 303 
 304     @Deprecated
 305     public static interface ECharacterDirection {
 306         /**
 307          * Directional type L
 308          * @stable ICU 2.1
 309          */
 310         public static final int LEFT_TO_RIGHT              = 0;
 311 
 312         /**
 313          * JDK-compatible synonum for LEFT_TO_RIGHT.
 314          * @draft ICU 3.0
 315      * @deprecated This is a draft API and might change in a future release of ICU.
 316          */
 317         @Deprecated
 318         public static final byte DIRECTIONALITY_LEFT_TO_RIGHT = (byte)LEFT_TO_RIGHT;
 319 
 320         /**
 321          * Directional type R
 322          * @stable ICU 2.1
 323          */
 324         public static final int RIGHT_TO_LEFT              = 1;
 325 
 326         /**
 327          * JDK-compatible synonum for RIGHT_TO_LEFT.
 328          * @draft ICU 3.0
 329      * @deprecated This is a draft API and might change in a future release of ICU.
 330          */
 331         @Deprecated
 332         public static final byte DIRECTIONALITY_RIGHT_TO_LEFT = (byte)RIGHT_TO_LEFT;
 333 
 334         /**
 335          * Directional type EN
 336          * @stable ICU 2.1
 337          */
 338         public static final int EUROPEAN_NUMBER            = 2;
 339 
 340         /**
 341          * JDK-compatible synonum for EUROPEAN_NUMBER.
 342          * @draft ICU 3.0
 343      * @deprecated This is a draft API and might change in a future release of ICU.
 344          */
 345         @Deprecated
 346         public static final byte DIRECTIONALITY_EUROPEAN_NUMBER = (byte)EUROPEAN_NUMBER;
 347 
 348         /**
 349          * Directional type ES
 350          * @stable ICU 2.1
 351          */
 352         public static final int EUROPEAN_NUMBER_SEPARATOR  = 3;
 353 
 354         /**
 355          * JDK-compatible synonum for EUROPEAN_NUMBER_SEPARATOR.
 356          * @draft ICU 3.0
 357      * @deprecated This is a draft API and might change in a future release of ICU.
 358          */
 359         @Deprecated
 360         public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR = (byte)EUROPEAN_NUMBER_SEPARATOR;
 361 
 362         /**
 363          * Directional type ET
 364          * @stable ICU 2.1
 365          */
 366         public static final int EUROPEAN_NUMBER_TERMINATOR = 4;
 367 
 368         /**
 369          * JDK-compatible synonum for EUROPEAN_NUMBER_TERMINATOR.
 370          * @draft ICU 3.0
 371      * @deprecated This is a draft API and might change in a future release of ICU.
 372          */
 373         @Deprecated
 374         public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR = (byte)EUROPEAN_NUMBER_TERMINATOR;
 375 
 376         /**
 377          * Directional type AN
 378          * @stable ICU 2.1
 379          */
 380         public static final int ARABIC_NUMBER              = 5;
 381 
 382         /**
 383          * JDK-compatible synonum for ARABIC_NUMBER.
 384          * @draft ICU 3.0
 385      * @deprecated This is a draft API and might change in a future release of ICU.
 386          */
 387         @Deprecated
 388         public static final byte DIRECTIONALITY_ARABIC_NUMBER = (byte)ARABIC_NUMBER;
 389 
 390         /**
 391          * Directional type CS
 392          * @stable ICU 2.1
 393          */
 394         public static final int COMMON_NUMBER_SEPARATOR    = 6;
 395 
 396         /**
 397          * JDK-compatible synonum for COMMON_NUMBER_SEPARATOR.
 398          * @draft ICU 3.0
 399      * @deprecated This is a draft API and might change in a future release of ICU.
 400          */
 401         @Deprecated
 402         public static final byte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR = (byte)COMMON_NUMBER_SEPARATOR;
 403 
 404         /**
 405          * Directional type B
 406          * @stable ICU 2.1
 407          */
 408         public static final int BLOCK_SEPARATOR            = 7;
 409 
 410         /**
 411          * JDK-compatible synonum for BLOCK_SEPARATOR.
 412          * @draft ICU 3.0
 413      * @deprecated This is a draft API and might change in a future release of ICU.
 414          */
 415         @Deprecated
 416         public static final byte DIRECTIONALITY_PARAGRAPH_SEPARATOR = (byte)BLOCK_SEPARATOR;
 417 
 418         /**
 419          * Directional type S
 420          * @stable ICU 2.1
 421          */
 422         public static final int SEGMENT_SEPARATOR          = 8;
 423 
 424         /**
 425          * JDK-compatible synonum for SEGMENT_SEPARATOR.
 426          * @draft ICU 3.0
 427      * @deprecated This is a draft API and might change in a future release of ICU.
 428          */
 429         @Deprecated
 430         public static final byte DIRECTIONALITY_SEGMENT_SEPARATOR = (byte)SEGMENT_SEPARATOR;
 431 
 432         /**
 433          * Directional type WS
 434          * @stable ICU 2.1
 435          */
 436         public static final int WHITE_SPACE_NEUTRAL        = 9;
 437 
 438         /**
 439          * JDK-compatible synonum for WHITE_SPACE_NEUTRAL.
 440          * @draft ICU 3.0
 441      * @deprecated This is a draft API and might change in a future release of ICU.
 442          */
 443         @Deprecated
 444         public static final byte DIRECTIONALITY_WHITESPACE = (byte)WHITE_SPACE_NEUTRAL;
 445 
 446         /**
 447          * Directional type ON
 448          * @stable ICU 2.1
 449          */
 450         public static final int OTHER_NEUTRAL              = 10;
 451 
 452         /**
 453          * JDK-compatible synonum for OTHER_NEUTRAL.
 454          * @draft ICU 3.0
 455      * @deprecated This is a draft API and might change in a future release of ICU.
 456          */
 457         @Deprecated
 458         public static final byte DIRECTIONALITY_OTHER_NEUTRALS = (byte)OTHER_NEUTRAL;
 459 
 460         /**
 461          * Directional type LRE
 462          * @stable ICU 2.1
 463          */
 464         public static final int LEFT_TO_RIGHT_EMBEDDING    = 11;
 465 
 466         /**
 467          * JDK-compatible synonum for LEFT_TO_RIGHT_EMBEDDING.
 468          * @draft ICU 3.0
 469      * @deprecated This is a draft API and might change in a future release of ICU.
 470          */
 471         @Deprecated
 472         public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING = (byte)LEFT_TO_RIGHT_EMBEDDING;
 473 
 474         /**
 475          * Directional type LRO
 476          * @stable ICU 2.1
 477          */
 478         public static final int LEFT_TO_RIGHT_OVERRIDE     = 12;
 479 
 480         /**
 481          * JDK-compatible synonum for LEFT_TO_RIGHT_OVERRIDE.
 482          * @draft ICU 3.0
 483      * @deprecated This is a draft API and might change in a future release of ICU.
 484          */
 485         @Deprecated
 486         public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE = (byte)LEFT_TO_RIGHT_OVERRIDE;
 487 
 488         /**
 489          * Directional type AL
 490          * @stable ICU 2.1
 491          */
 492         public static final int RIGHT_TO_LEFT_ARABIC       = 13;
 493 
 494         /**
 495          * JDK-compatible synonum for RIGHT_TO_LEFT_ARABIC.
 496          * @draft ICU 3.0
 497      * @deprecated This is a draft API and might change in a future release of ICU.
 498          */
 499         @Deprecated
 500         public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC = (byte)RIGHT_TO_LEFT_ARABIC;
 501 
 502         /**
 503          * Directional type RLE
 504          * @stable ICU 2.1
 505          */
 506         public static final int RIGHT_TO_LEFT_EMBEDDING    = 14;
 507 
 508         /**
 509          * JDK-compatible synonum for RIGHT_TO_LEFT_EMBEDDING.
 510          * @draft ICU 3.0
 511      * @deprecated This is a draft API and might change in a future release of ICU.
 512          */
 513         @Deprecated
 514         public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING = (byte)RIGHT_TO_LEFT_EMBEDDING;
 515 
 516         /**
 517          * Directional type RLO
 518          * @stable ICU 2.1
 519          */
 520         public static final int RIGHT_TO_LEFT_OVERRIDE     = 15;
 521 
 522         /**
 523          * JDK-compatible synonum for RIGHT_TO_LEFT_OVERRIDE.
 524          * @draft ICU 3.0
 525      * @deprecated This is a draft API and might change in a future release of ICU.
 526          */
 527         @Deprecated
 528         public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE = (byte)RIGHT_TO_LEFT_OVERRIDE;
 529 
 530         /**
 531          * Directional type PDF
 532          * @stable ICU 2.1
 533          */
 534         public static final int POP_DIRECTIONAL_FORMAT     = 16;
 535 
 536         /**
 537          * JDK-compatible synonum for POP_DIRECTIONAL_FORMAT.
 538          * @draft ICU 3.0
 539      * @deprecated This is a draft API and might change in a future release of ICU.
 540          */
 541         @Deprecated
 542         public static final byte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT = (byte)POP_DIRECTIONAL_FORMAT;
 543 
 544         /**
 545          * Directional type NSM
 546          * @stable ICU 2.1
 547          */
 548         public static final int DIR_NON_SPACING_MARK       = 17;
 549 
 550         /**
 551          * JDK-compatible synonum for DIR_NON_SPACING_MARK.
 552          * @draft ICU 3.0
 553      * @deprecated This is a draft API and might change in a future release of ICU.
 554          */
 555         @Deprecated
 556         public static final byte DIRECTIONALITY_NON_SPACING_MARK = (byte)DIR_NON_SPACING_MARK;
 557 
 558         /**
 559          * Directional type BN
 560          * @stable ICU 2.1
 561          */
 562         public static final int BOUNDARY_NEUTRAL           = 18;
 563 
 564         /**
 565          * JDK-compatible synonum for BOUNDARY_NEUTRAL.
 566          * @draft ICU 3.0
 567      * @deprecated This is a draft API and might change in a future release of ICU.
 568          */
 569         @Deprecated
 570         public static final byte DIRECTIONALITY_BOUNDARY_NEUTRAL = (byte)BOUNDARY_NEUTRAL;
 571 
 572         /**
 573          * Number of directional types
 574          * @stable ICU 2.1
 575          */
 576         public static final int CHAR_DIRECTION_COUNT       = 19;
 577 
 578         /**
 579          * Undefined bidirectional character type. Undefined <code>char</code>
 580          * values have undefined directionality in the Unicode specification.
 581      * @draft ICU 3.0
 582      * @deprecated This is a draft API and might change in a future release of ICU.
 583          */
 584         @Deprecated
 585         public static final byte DIRECTIONALITY_UNDEFINED = -1;
 586     }
 587 }