1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html#License
3/*
4 *******************************************************************************
5 * Copyright (C) 2000-2004, International Business Machines Corporation and    *
6 * others. All Rights Reserved.                                                *
7 *******************************************************************************
8 */
9
10package com.ibm.icu.dev.tool.ime.indic;
11
12import java.util.Locale;
13
14public class TamilInputMethodDescriptor extends IndicIMDescriptor
15{
16    private static final Locale TAMIL = new Locale("ta", "IN");
17
18    public TamilInputMethodDescriptor() {
19    super(TAMIL, "Tamil");
20    }
21
22    private static char[] keyboardMap;
23    private static char[][] substitutionTable;
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 */ '\uFFFF',   // '"'
63        /* 23 */ '\uFFFF',   // '#'
64        /* 24 */ '\uFFFF',   // '$'
65        /* 25 */ '\uFFFF',   // '%'
66        /* 26 */ '\uFF00',   // '&'
67        /* 27 */ '\u0B9F',   // '''
68        /* 28 */ '\u0028',   // '('
69        /* 29 */ '\u0029',   // ')'
70        /* 2A */ '\uFF01',   // '*'
71        /* 2B */ '\uFFFF',   // '+'
72        /* 2C */ '\u002C',   // ','
73        /* 2D */ '\u002D',   // '-'
74        /* 2E */ '\u002E',   // '.'
75        /* 2F */ '\u0BAF',   // '/'
76        /* 30 */ '\u0BE6',   // '0'
77        /* 31 */ '\u0BE7',   // '1'
78        /* 32 */ '\u0BE8',   // '2'
79        /* 33 */ '\u0BE9',   // '3'
80        /* 34 */ '\u0BEA',   // '4'
81        /* 35 */ '\u0BEB',   // '5'
82        /* 36 */ '\u0BEC',   // '6'
83        /* 37 */ '\u0BED',   // '7'
84        /* 38 */ '\u0BEE',   // '8'
85        /* 39 */ '\u0BEF',   // '9'
86        /* 3A */ '\uFFFF',   // ':'
87        /* 3B */ '\u0B9A',   // ';'
88        /* 3C */ '\u0BB7',   // '<'
89        /* 3D */ '\uFFFF',   // '='
90        /* 3E */ '\u0964',   // '>'  (Devanagari danda)
91        /* 3F */ '\uFFFF',   // '?'
92        /* 40 */ '\uFFFF',   // '@'
93        /* 41 */ '\u0B93',   // 'A'
94        /* 42 */ '\u0BB4',   // 'B'
95        /* 43 */ '\u0BA3',   // 'C'
96        /* 44 */ '\u0B85',   // 'D'
97        /* 45 */ '\u0B86',   // 'E'
98        /* 46 */ '\u0B87',   // 'F'
99        /* 47 */ '\u0B89',   // 'G'
100        /* 48 */ '\uFFFF',   // 'H'
101        /* 49 */ '\uFFFF',   // 'I'
102        /* 4A */ '\u0BB1',   // 'J'
103        /* 4B */ '\uFFFF',   // 'K'
104        /* 4C */ '\uFFFF',   // 'L'
105        /* 4D */ '\uFFFF',   // 'M'
106        /* 4E */ '\u0BB3',   // 'N'
107        /* 4F */ '\uFFFF',   // 'O'
108        /* 50 */ '\uFFFF',   // 'P'
109        /* 51 */ '\u0B94',   // 'Q'
110        /* 52 */ '\u0B88',   // 'R'
111        /* 53 */ '\u0B8F',   // 'S'
112        /* 54 */ '\u0B8A',   // 'T'
113        /* 55 */ '\u0B99',   // 'U'
114        /* 56 */ '\u0BA9',   // 'V'
115        /* 57 */ '\u0B90',   // 'W'
116        /* 58 */ '\uFFFF',   // 'X'
117        /* 59 */ '\uFFFF',   // 'Y'
118        /* 5A */ '\u0B8E',   // 'Z'
119        /* 5B */ '\uFFFF',   // '['
120        /* 5C */ '\uFFFF',   // '\'
121        /* 5D */ '\uFFFF',   // ']'
122        /* 5E */ '\uFFFF',   // '^'
123        /* 5F */ '\u0B83',   // '_'
124        /* 60 */ '\u0BCA',   // '`'
125        /* 61 */ '\u0BCB',   // 'a'
126        /* 62 */ '\u0BB5',   // 'b'
127        /* 63 */ '\u0BAE',   // 'c'
128        /* 64 */ '\u0BCD',   // 'd'
129        /* 65 */ '\u0BBE',   // 'e'
130        /* 66 */ '\u0BBF',   // 'f'
131        /* 67 */ '\u0BC1',   // 'g'
132        /* 68 */ '\u0BAA',   // 'h'
133        /* 69 */ '\uFFFF',   // 'i'
134        /* 6A */ '\u0BB0',   // 'j'
135        /* 6B */ '\u0B95',   // 'k'
136        /* 6C */ '\u0BA4',   // 'l'
137        /* 6D */ '\u0BB8',   // 'm'
138        /* 6E */ '\u0BB2',   // 'n'
139        /* 6F */ '\uFFFF',   // 'o'
140        /* 70 */ '\u0B9C',   // 'p'
141        /* 71 */ '\u0BCC',   // 'q'
142        /* 72 */ '\u0BC0',   // 'r'
143        /* 73 */ '\u0BC7',   // 's'
144        /* 74 */ '\u0BC2',   // 't'
145        /* 75 */ '\u0BB9',   // 'u'
146        /* 76 */ '\u0BA8',   // 'v'
147        /* 77 */ '\u0BC8',   // 'w'
148        /* 78 */ '\u0B82',   // 'x'
149        /* 79 */ '\uFFFF',   // 'y'
150        /* 7A */ '\u0BC6',   // 'z'
151        /* 7B */ '\uFFFF',   // '{'
152        /* 7C */ '\uFFFF',   // '|'
153        /* 7D */ '\u0B9E',   // '}'
154        /* 7E */ '\u0B92',   // '~'
155        /* 7F */ '\u007F'    // ''
156        };
157
158        char[] CONJ_KA_SSA = {'\u0B95', '\u0BCD', '\u0BB7'};
159        char[] CONJ_SSA_RA = {'\u0BB7', '\u0BCD', '\u0BB0'};
160
161        substitutionTable = new char[][] {
162        CONJ_KA_SSA, CONJ_SSA_RA
163        };
164    }
165
166        return new IndicInputMethodImpl(keyboardMap, null, null, substitutionTable);
167    }
168}
169
170