jdk/src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariTables.java
changeset 5656 4868963e05e0
parent 5655 8dacdb7bb25b
parent 5645 c98f230a6078
child 5657 7e406ebed9a5
equal deleted inserted replaced
5655:8dacdb7bb25b 5656:4868963e05e0
     1 /*
       
     2  * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
       
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     4  *
       
     5  * This code is free software; you can redistribute it and/or modify it
       
     6  * under the terms of the GNU General Public License version 2 only, as
       
     7  * published by the Free Software Foundation.  Oracle designates this
       
     8  * particular file as subject to the "Classpath" exception as provided
       
     9  * by Oracle in the LICENSE file that accompanied this code.
       
    10  *
       
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
       
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    14  * version 2 for more details (a copy is included in the LICENSE file that
       
    15  * accompanied this code).
       
    16  *
       
    17  * You should have received a copy of the GNU General Public License version
       
    18  * 2 along with this work; if not, write to the Free Software Foundation,
       
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    20  *
       
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
       
    22  * or visit www.oracle.com if you need additional information or have any
       
    23  * questions.
       
    24  */
       
    25 
       
    26 /*
       
    27  * (C) Copyright IBM Corp. 2000 - All Rights Reserved
       
    28  *
       
    29  * The original version of this source code and documentation is
       
    30  * copyrighted and owned by IBM. These materials are provided
       
    31  * under terms of a License Agreement between IBM and Sun.
       
    32  * This technology is protected by multiple US and International
       
    33  * patents. This notice and attribution to IBM may not be removed.
       
    34  *
       
    35  */
       
    36 
       
    37 package com.sun.inputmethods.internal.indicim;
       
    38 
       
    39 class DevanagariTables {
       
    40 
       
    41     static final char[] keyboardMap = {
       
    42     /* 00 */ '\u0000',
       
    43     /* 01 */ '\u0001',
       
    44     /* 02 */ '\u0002',
       
    45     /* 03 */ '\u0003',
       
    46     /* 04 */ '\u0004',
       
    47     /* 05 */ '\u0005',
       
    48     /* 06 */ '\u0006',
       
    49     /* 07 */ '\u0007',
       
    50     /* 08 */ '\u0008',
       
    51     /* 09 */ '\u0009',
       
    52     /* 0A */ '\012',
       
    53     /* 0B */ '\u000B',
       
    54     /* 0C */ '\u000C',
       
    55     /* 0D */ '\015',
       
    56     /* 0E */ '\u000E',
       
    57     /* 0F */ '\u000F',
       
    58     /* 10 */ '\u0010',
       
    59     /* 11 */ '\u0011',
       
    60     /* 12 */ '\u0012',
       
    61     /* 13 */ '\u0013',
       
    62     /* 14 */ '\u0014',
       
    63     /* 15 */ '\u0015',
       
    64     /* 16 */ '\u0016',
       
    65     /* 17 */ '\u0017',
       
    66     /* 18 */ '\u0018',
       
    67     /* 19 */ '\u0019',
       
    68     /* 1A */ '\u001A',
       
    69     /* 1B */ '\u001B',
       
    70     /* 1C */ '\u001C',
       
    71     /* 1D */ '\u001D',
       
    72     /* 1E */ '\u001E',
       
    73     /* 1F */ '\u001F',
       
    74     /* 20 */ '\u0020',
       
    75     /* 21 */ '\u090D',   // '!'
       
    76     /* 22 */ '\u0920',   // '"'
       
    77     /* 23 */ '\uFF00',   // '#'
       
    78     /* 24 */ '\uFF01',   // '$'
       
    79     /* 25 */ '\uFF02',   // '%'
       
    80     /* 26 */ '\uFF04',   // '&'
       
    81     /* 27 */ '\u091F',   // '''
       
    82     /* 28 */ '\u0028',   // '('
       
    83     /* 29 */ '\u0029',   // ')'
       
    84     /* 2A */ '\uFF05',   // '*'
       
    85     /* 2B */ '\u090B',   // '+'
       
    86     /* 2C */ '\u002C',   // ','
       
    87     /* 2D */ '\u002D',   // '-'
       
    88     /* 2E */ '\u002E',   // '.'
       
    89     /* 2F */ '\u092F',   // '/'
       
    90     /* 30 */ '\u0966',   // '0'
       
    91     /* 31 */ '\u0967',   // '1'
       
    92     /* 32 */ '\u0968',   // '2'
       
    93     /* 33 */ '\u0969',   // '3'
       
    94     /* 34 */ '\u096A',   // '4'
       
    95     /* 35 */ '\u096B',   // '5'
       
    96     /* 36 */ '\u096C',   // '6'
       
    97     /* 37 */ '\u096D',   // '7'
       
    98     /* 38 */ '\u096E',   // '8'
       
    99     /* 39 */ '\u096F',   // '9'
       
   100     /* 3A */ '\u091B',   // ':'
       
   101     /* 3B */ '\u091A',   // ';'
       
   102     /* 3C */ '\u0937',   // '<'
       
   103     /* 3D */ '\u0943',   // '='
       
   104     /* 3E */ '\u0964',   // '>'
       
   105     /* 3F */ '\u095F',   // '?'
       
   106     /* 40 */ '\u0945',   // '@'
       
   107     /* 41 */ '\u0913',   // 'A'
       
   108     /* 42 */ '\u0934',   // 'B'
       
   109     /* 43 */ '\u0923',   // 'C'
       
   110     /* 44 */ '\u0905',   // 'D'
       
   111     /* 45 */ '\u0906',   // 'E'
       
   112     /* 46 */ '\u0907',   // 'F'
       
   113     /* 47 */ '\u0909',   // 'G'
       
   114     /* 48 */ '\u092B',   // 'H'
       
   115     /* 49 */ '\u0918',   // 'I'
       
   116     /* 4A */ '\u0931',   // 'J'
       
   117     /* 4B */ '\u0916',   // 'K'
       
   118     /* 4C */ '\u0925',   // 'L'
       
   119     /* 4D */ '\u0936',   // 'M'
       
   120     /* 4E */ '\u0933',   // 'N'
       
   121     /* 4F */ '\u0927',   // 'O'
       
   122     /* 50 */ '\u091D',   // 'P'
       
   123     /* 51 */ '\u0914',   // 'Q'
       
   124     /* 52 */ '\u0908',   // 'R'
       
   125     /* 53 */ '\u090F',   // 'S'
       
   126     /* 54 */ '\u090A',   // 'T'
       
   127     /* 55 */ '\u0919',   // 'U'
       
   128     /* 56 */ '\u0929',   // 'V'
       
   129     /* 57 */ '\u0910',   // 'W'
       
   130     /* 58 */ '\u0901',   // 'X'
       
   131     /* 59 */ '\u092D',   // 'Y'
       
   132     /* 5A */ '\u090E',   // 'Z'
       
   133     /* 5B */ '\u0921',   // '['
       
   134     /* 5C */ '\u0949',   // '\'
       
   135     /* 5D */ '\u093C',   // ']'
       
   136     /* 5E */ '\uFF03',   // '^'
       
   137     /* 5F */ '\u0903',   // '_'
       
   138     /* 60 */ '\u094A',   // '`'
       
   139     /* 61 */ '\u094B',   // 'a'
       
   140     /* 62 */ '\u0935',   // 'b'
       
   141     /* 63 */ '\u092E',   // 'c'
       
   142     /* 64 */ '\u094D',   // 'd'
       
   143     /* 65 */ '\u093E',   // 'e'
       
   144     /* 66 */ '\u093F',   // 'f'
       
   145     /* 67 */ '\u0941',   // 'g'
       
   146     /* 68 */ '\u092A',   // 'h'
       
   147     /* 69 */ '\u0917',   // 'i'
       
   148     /* 6A */ '\u0930',   // 'j'
       
   149     /* 6B */ '\u0915',   // 'k'
       
   150     /* 6C */ '\u0924',   // 'l'
       
   151     /* 6D */ '\u0938',   // 'm'
       
   152     /* 6E */ '\u0932',   // 'n'
       
   153     /* 6F */ '\u0926',   // 'o'
       
   154     /* 70 */ '\u091C',   // 'p'
       
   155     /* 71 */ '\u094C',   // 'q'
       
   156     /* 72 */ '\u0940',   // 'r'
       
   157     /* 73 */ '\u0947',   // 's'
       
   158     /* 74 */ '\u0942',   // 't'
       
   159     /* 75 */ '\u0939',   // 'u'
       
   160     /* 76 */ '\u0928',   // 'v'
       
   161     /* 77 */ '\u0948',   // 'w'
       
   162     /* 78 */ '\u0902',   // 'x'
       
   163     /* 79 */ '\u092C',   // 'y'
       
   164     /* 7A */ '\u0946',   // 'z'
       
   165     /* 7B */ '\u0922',   // '{'
       
   166     /* 7C */ '\u0911',   // '|'
       
   167     /* 7D */ '\u091E',   // '}'
       
   168     /* 7E */ '\u0912',   // '~'
       
   169     /* 7F */ '\u007F'    //
       
   170 };
       
   171 
       
   172     // the character substitutions for the meta characters.
       
   173     static final char[] RA_SUB = {'\u094D', '\u0930'};
       
   174     static final char[] RA_SUP = {'\u0930', '\u094D'};
       
   175     static final char[] CONJ_JA_NYA = {'\u091C', '\u094D', '\u091E'};
       
   176     static final char[] CONJ_TA_RA = {'\u0924', '\u094D', '\u0930'};
       
   177     static final char[] CONJ_KA_SSA = {'\u0915', '\u094D', '\u0937'};
       
   178     static final char[] CONJ_SHA_RA = {'\u0936', '\u094D', '\u0930'};
       
   179 
       
   180     static final char[][] substitutionTable = {
       
   181         RA_SUB, RA_SUP, CONJ_JA_NYA, CONJ_TA_RA, CONJ_KA_SSA, CONJ_SHA_RA
       
   182     };
       
   183 
       
   184     // The following characters followed by Nukta should be replaced
       
   185     // by the corresponding character as defined in ISCII91
       
   186     static final char SIGN_CANDRABINDU      = '\u0901';
       
   187     static final char LETTER_I              = '\u0907';
       
   188     static final char LETTER_II             = '\u0908';
       
   189     static final char LETTER_VOCALIC_R      = '\u090B';
       
   190     static final char LETTER_KA             = '\u0915';
       
   191     static final char LETTER_KHA            = '\u0916';
       
   192     static final char LETTER_GA             = '\u0917';
       
   193     static final char LETTER_JA             = '\u091C';
       
   194     static final char LETTER_DDA            = '\u0921';
       
   195     static final char LETTER_DDHA           = '\u0922';
       
   196     static final char LETTER_PHA            = '\u092B';
       
   197     static final char VOWEL_SIGN_I          = '\u093F';
       
   198     static final char VOWEL_SIGN_II         = '\u0940';
       
   199     static final char VOWEL_SIGN_VOCALIC_R  = '\u0943';
       
   200     static final char DANDA                 = '\u0964';
       
   201 
       
   202    // The follwing characters replace the above characters followed by Nukta. These
       
   203    // are defined in one to one correspondence order.
       
   204     static final char SIGN_OM               = '\u0950';
       
   205     static final char LETTER_VOCALIC_L      = '\u090C';
       
   206     static final char LETTER_VOCALIC_LL     = '\u0961';
       
   207     static final char LETTER_VOCALIC_RR     = '\u0960';
       
   208     static final char LETTER_QA             = '\u0958';
       
   209     static final char LETTER_KHHA           = '\u0959';
       
   210     static final char LETTER_GHHA           = '\u095A';
       
   211     static final char LETTER_ZA             = '\u095B';
       
   212     static final char LETTER_DDDHA          = '\u095C';
       
   213     static final char LETTER_RHA            = '\u095D';
       
   214     static final char LETTER_FA             = '\u095E';
       
   215     static final char VOWEL_SIGN_VOCALIC_L  = '\u0962';
       
   216     static final char VOWEL_SIGN_VOCALIC_LL = '\u0963';
       
   217     static final char VOWEL_SIGN_VOCALIC_RR = '\u0944';
       
   218     static final char SIGN_AVAGRAHA         = '\u093D';
       
   219 
       
   220     static final char[] joinWithNukta = {
       
   221         SIGN_CANDRABINDU,
       
   222         LETTER_I,
       
   223         LETTER_II,
       
   224         LETTER_VOCALIC_R ,
       
   225         LETTER_KA,
       
   226         LETTER_KHA,
       
   227         LETTER_GA,
       
   228         LETTER_JA,
       
   229         LETTER_DDA,
       
   230         LETTER_DDHA,
       
   231         LETTER_PHA,
       
   232         VOWEL_SIGN_I,
       
   233         VOWEL_SIGN_II,
       
   234         VOWEL_SIGN_VOCALIC_R,
       
   235         DANDA
       
   236     };
       
   237 
       
   238     static final char[] nuktaForm = {
       
   239         SIGN_OM,
       
   240         LETTER_VOCALIC_L,
       
   241         LETTER_VOCALIC_LL,
       
   242         LETTER_VOCALIC_RR,
       
   243         LETTER_QA,
       
   244         LETTER_KHHA,
       
   245         LETTER_GHHA,
       
   246         LETTER_ZA,
       
   247         LETTER_DDDHA,
       
   248         LETTER_RHA,
       
   249         LETTER_FA,
       
   250         VOWEL_SIGN_VOCALIC_L,
       
   251         VOWEL_SIGN_VOCALIC_LL,
       
   252         VOWEL_SIGN_VOCALIC_RR,
       
   253         SIGN_AVAGRAHA
       
   254     };
       
   255 }