home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection Student Program / ADC Tools Sampler CD Disk 3 1999.iso / Metrowerks CodeWarrior / Java Support / Java_Source / Java2 / src / java / text / TextBoundaryData.java < prev    next >
Encoding:
Java Source  |  1999-05-28  |  10.9 KB  |  307 lines  |  [TEXT/CWIE]

  1. /*
  2.  * @(#)TextBoundaryData.java    1.10 98/07/24
  3.  *
  4.  * (C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved
  5.  * (C) Copyright IBM Corp. 1996 - 1998 - All Rights Reserved
  6.  *
  7.  * Portions copyright (c) 1996-1998 Sun Microsystems, Inc.
  8.  * All Rights Reserved.
  9.  *
  10.  * The original version of this source code and documentation
  11.  * is copyrighted and owned by Taligent, Inc., a wholly-owned
  12.  * subsidiary of IBM. These materials are provided under terms
  13.  * of a License Agreement between Taligent and Sun. This technology
  14.  * is protected by multiple US and International patents.
  15.  *
  16.  * This notice and attribution to Taligent may not be removed.
  17.  * Taligent is a registered trademark of Taligent, Inc.
  18.  *
  19.  * Permission to use, copy, modify, and distribute this software
  20.  * and its documentation for NON-COMMERCIAL purposes and without
  21.  * fee is hereby granted provided that this copyright notice
  22.  * appears in all copies. Please refer to the file "copyright.html"
  23.  * for further important copyright and licensing information.
  24.  *
  25.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  26.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  27.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  28.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  29.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  30.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  31.  *
  32.  */
  33.  
  34. package java.text;
  35.  
  36. /**
  37.  * This class wraps up the data tables needed for SimpleTextBoundary.
  38.  * It is subclassed for each type of text boundary.
  39.  */
  40. abstract class TextBoundaryData
  41. {
  42.     private WordBreakTable forwardStateTable = null;
  43.     private WordBreakTable backwardStateTable = null;
  44.     private UnicodeClassMapping mappingTable = null;
  45.  
  46.     protected TextBoundaryData(WordBreakTable fwd, WordBreakTable bwd, UnicodeClassMapping map) {
  47.         forwardStateTable = fwd;
  48.         backwardStateTable = bwd;
  49.         mappingTable = map;
  50.     }
  51.  
  52.     public WordBreakTable forward() {
  53.         return forwardStateTable;
  54.     }
  55.  
  56.     public WordBreakTable backward() {
  57.         return backwardStateTable;
  58.     }
  59.  
  60.     public UnicodeClassMapping map() {
  61.         return mappingTable;
  62.     }
  63.  
  64.     // useful Unicode constants
  65.     protected static final char ASCII_END_OF_TEXT
  66.         = '\u0003';
  67.     protected static final char ASCII_HORIZONTAL_TABULATION
  68.         = '\u0009';
  69.     protected static final char ASCII_LINEFEED
  70.         = (char)0x000A;
  71.     protected static final char ASCII_VERTICAL_TABULATION
  72.         = '\u000B';
  73.     protected static final char ASCII_FORM_FEED
  74.         = '\u000C';
  75.     protected static final char ASCII_CARRIAGE_RETURN
  76.         = (char)0x000D;
  77.     protected static final char ASCII_SPACE
  78.         = '\u0020';
  79.     protected static final char ASCII_EXCLAMATION_MARK
  80.         = '\u0021';
  81.     protected static final char ASCII_QUOTATION_MARK
  82.         = '\u0022';
  83.     protected static final char ASCII_NUMBER_SIGN
  84.         = '\u0023';
  85.     protected static final char ASCII_DOLLAR_SIGN
  86.         = '\u0024';
  87.     protected static final char ASCII_PERCENT
  88.         = '\u0025';
  89.     protected static final char ASCII_AMPERSAND
  90.         = '\u0026';
  91.     protected static final char ASCII_APOSTROPHE
  92.         = (char)0x0027;
  93.     protected static final char ASCII_COMMA
  94.         = '\u002C';
  95.     protected static final char ASCII_FULL_STOP
  96.         = '\u002E';
  97.     protected static final char ASCII_COLON
  98.         = '\u003A';
  99.     protected static final char ASCII_SEMICOLON
  100.         = '\u003B';
  101.     protected static final char ASCII_QUESTION_MARK
  102.         = '\u003F';
  103.     protected static final char ASCII_NONBREAKING_SPACE
  104.         = '\u00A0';
  105.     protected static final char ASCII_CENT_SIGN
  106.         = '\u00A2';
  107.     protected static final char ASCII_POUND_SIGN
  108.         = '\u00a3';
  109.     protected static final char ASCII_YEN_SIGN
  110.         = '\u00a5';
  111.     protected static final char LATIN1_SOFTHYPHEN
  112.         = '\u00AD';
  113.     protected static final char LATIN1_DEGREE_SIGN
  114.         = '\u00B0';
  115.     protected static final char ARABIC_PERCENT_SIGN
  116.         = '\u066A';
  117.     protected static final char ARABIC_DECIMAL_SEPARATOR
  118.         = '\u066B';
  119.     protected static final char HANGUL_CHOSEONG_LOW
  120.         = '\u1100';
  121.     protected static final char HANGUL_CHOSEONG_HIGH
  122.         = '\u115f';
  123.     protected static final char HANGUL_JUNGSEONG_LOW
  124.         = '\u1160';
  125.     protected static final char HANGUL_JUNGSEONG_HIGH
  126.         = '\u11A7';
  127.     protected static final char HANGUL_JONGSEONG_LOW
  128.         = '\u11A8';
  129.     protected static final char HANGUL_JONGSEONG_HIGH
  130.         = '\u11FF';
  131.     protected static final char FIGURE_SPACE
  132.         = '\u2007';
  133.     protected static final char NONBREAKING_HYPHEN
  134.         = '\u2011';
  135.     protected static final char PUNCTUATION_HYPHENATION_POINT
  136.         = '\u2027';
  137.     protected static final char PUNCTUATION_LINE_SEPARATOR
  138.         = '\u2028';
  139.     protected static final char PUNCTUATION_PARAGRAPH_SEPARATOR
  140.         = '\u2029';
  141.     protected static final char PER_MILLE_SIGN
  142.         = '\u2030';
  143.     protected static final char PER_TEN_THOUSAND_SIGN
  144.         = '\u2031';
  145.     protected static final char PRIME
  146.         = '\u2032';
  147.     protected static final char DOUBLE_PRIME
  148.         = '\u2033';
  149.     protected static final char TRIPLE_PRIME
  150.         = '\u2034';
  151.     protected static final char DEGREE_CELSIUS
  152.         = '\u2103';
  153.     protected static final char DEGREE_FAHRENHEIT
  154.         = '\u2109';
  155.     protected static final char PUNCTUATION_IDEOGRAPHIC_COMMA
  156.         = '\u3001';
  157.     protected static final char PUNCTUATION_IDEOGRAPHIC_FULL_STOP
  158.         = '\u3002';
  159.     protected static final char IDEOGRAPHIC_ITERATION_MARK
  160.         = '\u3005';
  161.     protected static final char HIRAGANA_LETTER_SMALL_A
  162.         = '\u3041';
  163.     protected static final char HIRAGANA_LETTER_A
  164.         = '\u3042';
  165.     protected static final char HIRAGANA_LETTER_SMALL_I
  166.         = '\u3043';
  167.     protected static final char HIRAGANA_LETTER_I
  168.         = '\u3044';
  169.     protected static final char HIRAGANA_LETTER_SMALL_U
  170.         = '\u3045';
  171.     protected static final char HIRAGANA_LETTER_U
  172.         = '\u3046';
  173.     protected static final char HIRAGANA_LETTER_SMALL_E
  174.         = '\u3047';
  175.     protected static final char HIRAGANA_LETTER_E
  176.         = '\u3048';
  177.     protected static final char HIRAGANA_LETTER_SMALL_O
  178.         = '\u3049';
  179.     protected static final char HIRAGANA_LETTER_O
  180.         = '\u304A';
  181.     protected static final char HIRAGANA_LETTER_DI
  182.         = '\u3062';
  183.     protected static final char HIRAGANA_LETTER_SMALL_TU
  184.         = '\u3063';
  185.     protected static final char HIRAGANA_LETTER_TU
  186.         = '\u3064';
  187.     protected static final char HIRAGANA_LETTER_MO
  188.         = '\u3082';
  189.     protected static final char HIRAGANA_LETTER_SMALL_YA
  190.         = '\u3083';
  191.     protected static final char HIRAGANA_LETTER_YA
  192.         = '\u3084';
  193.     protected static final char HIRAGANA_LETTER_SMALL_YU
  194.         = '\u3085';
  195.     protected static final char HIRAGANA_LETTER_YU
  196.         = '\u3086';
  197.     protected static final char HIRAGANA_LETTER_SMALL_YO
  198.         = '\u3087';
  199.     protected static final char HIRAGANA_LETTER_YO
  200.         = '\u3088';
  201.     protected static final char HIRAGANA_LETTER_RO
  202.         = '\u308D';
  203.     protected static final char HIRAGANA_LETTER_SMALL_WA
  204.         = '\u308E';
  205.     protected static final char HIRAGANA_LETTER_WA
  206.         = '\u308F';
  207.     protected static final char HIRAGANA_LETTER_VU
  208.         = '\u3094';
  209.     protected static final char COMBINING_KATAKANA_HIRAGANA_VOICED_SOUND_MARK
  210.         = '\u3099';
  211.     protected static final char HIRAGANA_SEMIVOICED_SOUND_MARK
  212.         = '\u309C';
  213.     protected static final char HIRAGANA_ITERATION_MARK
  214.         = '\u309D';
  215.     protected static final char HIRAGANA_VOICED_ITERATION_MARK
  216.         = '\u309E';
  217.     protected static final char KATAKANA_LETTER_SMALL_A
  218.         = '\u30A1';
  219.     protected static final char KATAKANA_LETTER_A
  220.         = '\u30A2';
  221.     protected static final char KATAKANA_LETTER_SMALL_I
  222.         = '\u30A3';
  223.     protected static final char KATAKANA_LETTER_I
  224.         = '\u30A4';
  225.     protected static final char KATAKANA_LETTER_SMALL_U
  226.         = '\u30A5';
  227.     protected static final char KATAKANA_LETTER_U
  228.         = '\u30A6';
  229.     protected static final char KATAKANA_LETTER_SMALL_E
  230.         = '\u30A7';
  231.     protected static final char KATAKANA_LETTER_E
  232.         = '\u30A8';
  233.     protected static final char KATAKANA_LETTER_SMALL_O
  234.         = '\u30A9';
  235.     protected static final char KATAKANA_LETTER_O
  236.         = '\u30AA';
  237.     protected static final char KATAKANA_LETTER_DI
  238.         = '\u30C2';
  239.     protected static final char KATAKANA_LETTER_SMALL_TU
  240.         = '\u30C3';
  241.     protected static final char KATAKANA_LETTER_TU
  242.         = '\u30C4';
  243.     protected static final char KATAKANA_LETTER_MO
  244.         = '\u30E2';
  245.     protected static final char KATAKANA_LETTER_SMALL_YA
  246.         = '\u30E3';
  247.     protected static final char KATAKANA_LETTER_YA
  248.         = '\u30E4';
  249.     protected static final char KATAKANA_LETTER_SMALL_YU
  250.         = '\u30E5';
  251.     protected static final char KATAKANA_LETTER_YU
  252.         = '\u30E6';
  253.     protected static final char KATAKANA_LETTER_SMALL_YO
  254.         = '\u30E7';
  255.     protected static final char KATAKANA_LETTER_YO
  256.         = '\u30E8';
  257.     protected static final char KATAKANA_LETTER_RO
  258.         = '\u30ED';
  259.     protected static final char KATAKANA_LETTER_SMALL_WA
  260.         = '\u30EE';
  261.     protected static final char KATAKANA_LETTER_WA
  262.         = '\u30EF';
  263.     protected static final char KATAKANA_LETTER_VU
  264.         = '\u30F4';
  265.     protected static final char KATAKANA_LETTER_SMALL_KA
  266.         = '\u30F5';
  267.     protected static final char KATAKANA_LETTER_SMALL_KE
  268.         = '\u30F6';
  269.     protected static final char KATAKANA_LETTER_VA
  270.         = '\u30F7';
  271.     protected static final char KATAKANA_LETTER_VO
  272.         = '\u30FA';
  273.     protected static final char KATAKANA_HIRAGANA_PROLONGED_SOUND_MARK
  274.         = '\u30FC';
  275.     protected static final char KATAKANA_ITERATION_MARK
  276.         = '\u30FD';
  277.     protected static final char KATAKANA_VOICED_ITERATION_MARK
  278.         = '\u30FE';
  279.     protected static final char UNICODE_LOW_BOUND_HAN
  280.         = '\u4E00';
  281.     protected static final char UNICODE_HIGH_BOUND_HAN
  282.         = '\u9FA5';
  283.     protected static final char HANGUL_SYL_LOW
  284.         = '\uAC00';
  285.     protected static final char HANGUL_SYL_HIGH
  286.         = '\uD7A3';
  287.     protected static final char CJK_COMPATIBILITY_F900
  288.         = '\uF900';
  289.     protected static final char CJK_COMPATIBILITY_FA2D
  290.         = '\uFA2D';
  291.     protected static final char UNICODE_ZERO_WIDTH_NON_BREAKING_SPACE
  292.         = '\uFEFF';
  293.     protected static final char FULLWIDTH_EXCLAMATION_MARK
  294.         = '\uFF01';
  295.     protected static final char FULLWIDTH_FULL_STOP
  296.         = '\uFF0E';
  297.     protected static final char FULLWIDTH_QUESTION_MARK
  298.         = '\uFF1F';
  299.  
  300.     // SimpleTextBoundary has an internal convention that the not-a-Unicode value
  301.     // $FFFF is used to signify the end of the string when looking up a proper state
  302.     // transition for the end of the string
  303.     protected static final char END_OF_STRING
  304.         = '\uFFFF';
  305. }
  306.  
  307.