]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-52_1/tools/misc/src/com/ibm/icu/dev/tool/ime/indic/BengaliInputMethodDescriptor.java
Clean up imports.
[Dictionary.git] / jars / icu4j-52_1 / tools / misc / src / com / ibm / icu / dev / tool / ime / indic / BengaliInputMethodDescriptor.java
1 /*
2  *******************************************************************************
3  * Copyright (C) 2000-2004, International Business Machines Corporation and    *
4  * others. All Rights Reserved.                                                *
5  *******************************************************************************
6  */
7
8 package com.ibm.icu.dev.tool.ime.indic;
9
10 import java.util.Locale;
11
12 public class BengaliInputMethodDescriptor extends IndicIMDescriptor
13 {
14     private static final Locale BENGALI = new Locale("bn", "IN");
15
16     public BengaliInputMethodDescriptor() {
17     super(BENGALI, "Bengali");
18     }
19     
20     private static char[] keyboardMap;
21     private static char[][] substitutionTable;
22     private static char[] joinWithNukta;
23     private static char[] nuktaForm;
24
25     protected IndicInputMethodImpl getImpl()  {
26     if (keyboardMap == null) {
27         keyboardMap = new char[] {
28         /* 00 */ '\u0000',
29         /* 01 */ '\u0001',
30         /* 02 */ '\u0002',
31         /* 03 */ '\u0003',
32         /* 04 */ '\u0004',
33         /* 05 */ '\u0005',
34         /* 06 */ '\u0006',
35         /* 07 */ '\u0007',
36         /* 08 */ '\u0008',
37         /* 09 */ '\u0009',
38         /* 0A */ '\012',
39         /* 0B */ '\u000B',
40         /* 0C */ '\u000C',
41         /* 0D */ '\015',
42         /* 0E */ '\u000E',
43         /* 0F */ '\u000F',
44         /* 10 */ '\u0010',
45         /* 11 */ '\u0011',
46         /* 12 */ '\u0012',
47         /* 13 */ '\u0013',
48         /* 14 */ '\u0014',
49         /* 15 */ '\u0015',
50         /* 16 */ '\u0016',
51         /* 17 */ '\u0017',
52         /* 18 */ '\u0018',
53         /* 19 */ '\u0019',
54         /* 1A */ '\u001A',
55         /* 1B */ '\u001B',
56         /* 1C */ '\u001C',
57         /* 1D */ '\u001D',
58         /* 1E */ '\u001E',
59         /* 1F */ '\u001F',
60         /* 20 */ '\u0020',
61         /* 21 */ '\uFFFF',   // '!'
62         /* 22 */ '\u09A0',   // '"'
63         /* 23 */ '\uFF00',   // '#'
64         /* 24 */ '\uFF01',   // '$'
65         /* 25 */ '\uFF02',   // '%'
66         /* 26 */ '\uFF04',   // '&'
67         /* 27 */ '\u099F',   // '''
68         /* 28 */ '\u0028',   // '('
69         /* 29 */ '\u0029',   // ')'
70         /* 2A */ '\uFF05',   // '*'
71         /* 2B */ '\u098B',   // '+'
72         /* 2C */ '\u002C',   // ','
73         /* 2D */ '\u002D',   // '-'
74         /* 2E */ '\u002E',   // '.'
75         /* 2F */ '\u09DF',   // '/'
76         /* 30 */ '\u09E6',   // '0'
77         /* 31 */ '\u09E7',   // '1'
78         /* 32 */ '\u09E8',   // '2'
79         /* 33 */ '\u09E9',   // '3'
80         /* 34 */ '\u09EA',   // '4'
81         /* 35 */ '\u09EB',   // '5'
82         /* 36 */ '\u09EC',   // '6'
83         /* 37 */ '\u09ED',   // '7'
84         /* 38 */ '\u09EE',   // '8'
85         /* 39 */ '\u09EF',   // '9'
86         /* 3A */ '\u099B',   // ':'
87         /* 3B */ '\u099A',   // ';'
88         /* 3C */ '\u09B7',   // '<'
89         /* 3D */ '\u09C3',   // '='
90         /* 3E */ '\u0964',   // '>'  (Devanagari danda)
91         /* 3F */ '\u09AF',   // '?'
92         /* 40 */ '\uFFFF',   // '@'
93         /* 41 */ '\u0993',   // 'A'
94         /* 42 */ '\uFFFF',   // 'B'
95         /* 43 */ '\u09A3',   // 'C'
96         /* 44 */ '\u0985',   // 'D'
97         /* 45 */ '\u0986',   // 'E'
98         /* 46 */ '\u0987',   // 'F'
99         /* 47 */ '\u0989',   // 'G'
100         /* 48 */ '\u09AB',   // 'H'
101         /* 49 */ '\u0998',   // 'I'
102         /* 4A */ '\uFFFF',   // 'J'
103         /* 4B */ '\u0996',   // 'K'
104         /* 4C */ '\u09A5',   // 'L'
105         /* 4D */ '\u09B6',   // 'M'
106         /* 4E */ '\uFFFF',   // 'N'
107         /* 4F */ '\u09A7',   // 'O'
108         /* 50 */ '\u099D',   // 'P'
109         /* 51 */ '\u0994',   // 'Q'
110         /* 52 */ '\u0988',   // 'R'
111         /* 53 */ '\u098F',   // 'S'
112         /* 54 */ '\u098A',   // 'T'
113         /* 55 */ '\u0999',   // 'U'
114         /* 56 */ '\uFFFF',   // 'V'
115         /* 57 */ '\u0990',   // 'W'
116         /* 58 */ '\u0981',   // 'X'
117         /* 59 */ '\u09AD',   // 'Y'
118         /* 5A */ '\uFFFF',   // 'Z'
119         /* 5B */ '\u09A1',   // '['
120         /* 5C */ '\uFFFF',   // '\'
121         /* 5D */ '\u09BC',   // ']'
122         /* 5E */ '\uFF03',   // '^'
123         /* 5F */ '\u0983',   // '_'
124         /* 60 */ '\uFFFF',   // '`'
125         /* 61 */ '\u09CB',   // 'a'
126         /* 62 */ '\u09AC',   // 'b' (this is a BA instead of a VA)
127         /* 63 */ '\u09AE',   // 'c'
128         /* 64 */ '\u09CD',   // 'd'
129         /* 65 */ '\u09BE',   // 'e'
130         /* 66 */ '\u09BF',   // 'f'
131         /* 67 */ '\u09C1',   // 'g'
132         /* 68 */ '\u09AA',   // 'h'
133         /* 69 */ '\u0997',   // 'i'
134         /* 6A */ '\u09B0',   // 'j'
135         /* 6B */ '\u0995',   // 'k'
136         /* 6C */ '\u09A4',   // 'l'
137         /* 6D */ '\u09B8',   // 'm'
138         /* 6E */ '\u09B2',   // 'n'
139         /* 6F */ '\u09A6',   // 'o'
140         /* 70 */ '\u099C',   // 'p'
141         /* 71 */ '\u09CC',   // 'q'
142         /* 72 */ '\u09C0',   // 'r'
143         /* 73 */ '\u09C7',   // 's'
144         /* 74 */ '\u09C2',   // 't'
145         /* 75 */ '\u09B9',   // 'u'
146         /* 76 */ '\u09A8',   // 'v'
147         /* 77 */ '\u09C8',   // 'w'
148         /* 78 */ '\u0982',   // 'x'
149         /* 79 */ '\u09AC',   // 'y' (this is also a BA...)
150         /* 7A */ '\uFFFF',   // 'z'
151         /* 7B */ '\u09A2',   // '{'
152         /* 7C */ '\uFFFF',   // '|'
153         /* 7D */ '\u099E',   // '}'
154         /* 7E */ '\uFFFF',   // '~'
155         /* 7F */ '\u007F'    // '\7f'
156         };
157
158         char[] RA_SUB = {'\u09CD', '\u09B0'};
159         char[] RA_SUP = {'\u09B0', '\u09CD'};
160         char[] CONJ_JA_NYA = {'\u099C', '\u09CD', '\u099E'};
161         char[] CONJ_TA_RA = {'\u09A4', '\u09CD', '\u09B0'};
162         char[] CONJ_KA_SSA = {'\u0995', '\u09CD', '\u09B7'};
163         char[] CONJ_SHA_RA = {'\u09B6', '\u09CD', '\u09B0'};
164
165         substitutionTable = new char[][] {
166         RA_SUB, RA_SUP, CONJ_JA_NYA, CONJ_TA_RA, CONJ_KA_SSA, CONJ_SHA_RA
167         };
168
169         // The following characters followed by Nukta should be replaced
170         // by the corresponding character as defined in ISCII91
171         char LETTER_I              = '\u0987';
172         char LETTER_II             = '\u0988';
173         char LETTER_VOCALIC_R      = '\u098B';
174         char LETTER_DDA            = '\u09A1';
175         char LETTER_DDHA           = '\u09A2';
176         char VOWEL_SIGN_I          = '\u09BF';
177         char VOWEL_SIGN_II         = '\u09C0';
178         char VOWEL_SIGN_VOCALIC_R  = '\u09C3';
179
180         // The following characters replace the above characters followed by Nukta. These
181         // are defined in one to one correspondence order.
182         char LETTER_VOCALIC_L      = '\u098C';
183         char LETTER_VOCALIC_LL     = '\u09E1';
184         char LETTER_VOCALIC_RR     = '\u09E0';
185         char LETTER_DDDHA          = '\u09DC';
186         char LETTER_RHA            = '\u09DD';
187         char VOWEL_SIGN_VOCALIC_L  = '\u09E2';
188         char VOWEL_SIGN_VOCALIC_LL = '\u09E3';
189         char VOWEL_SIGN_VOCALIC_RR = '\u09C4';
190
191         joinWithNukta = new char[] {
192         LETTER_I,
193         LETTER_II,
194         LETTER_VOCALIC_R,
195         LETTER_DDA,
196         LETTER_DDHA,
197         VOWEL_SIGN_I,
198         VOWEL_SIGN_II,
199         VOWEL_SIGN_VOCALIC_R
200         };
201     
202         nuktaForm = new char[] {
203         LETTER_VOCALIC_L,
204         LETTER_VOCALIC_LL,
205         LETTER_VOCALIC_RR,
206         LETTER_DDDHA,
207         LETTER_RHA,
208         VOWEL_SIGN_VOCALIC_L,
209         VOWEL_SIGN_VOCALIC_LL,
210         VOWEL_SIGN_VOCALIC_RR
211         };
212     }
213
214     return new IndicInputMethodImpl(keyboardMap, joinWithNukta, nuktaForm, substitutionTable);
215     }
216 }