001: /*
002: *******************************************************************************
003: * Copyright (C) 2000-2004, International Business Machines Corporation and *
004: * others. All Rights Reserved. *
005: *******************************************************************************
006: */
007:
008: package com.ibm.icu.dev.tool.ime.indic;
009:
010: import java.util.Locale;
011:
012: public class TamilInputMethodDescriptor extends IndicIMDescriptor {
013: private static final Locale TAMIL = new Locale("ta", "IN");
014:
015: public TamilInputMethodDescriptor() {
016: super (TAMIL, "Tamil");
017: }
018:
019: private static char[] keyboardMap;
020: private static char[][] substitutionTable;
021:
022: protected IndicInputMethodImpl getImpl() {
023: if (keyboardMap == null) {
024: keyboardMap = new char[] {
025: /* 00 */'\u0000',
026: /* 01 */'\u0001',
027: /* 02 */'\u0002',
028: /* 03 */'\u0003',
029: /* 04 */'\u0004',
030: /* 05 */'\u0005',
031: /* 06 */'\u0006',
032: /* 07 */'\u0007',
033: /* 08 */'\u0008',
034: /* 09 */'\u0009',
035: /* 0A */'\012',
036: /* 0B */'\u000B',
037: /* 0C */'\u000C',
038: /* 0D */'\015',
039: /* 0E */'\u000E',
040: /* 0F */'\u000F',
041: /* 10 */'\u0010',
042: /* 11 */'\u0011',
043: /* 12 */'\u0012',
044: /* 13 */'\u0013',
045: /* 14 */'\u0014',
046: /* 15 */'\u0015',
047: /* 16 */'\u0016',
048: /* 17 */'\u0017',
049: /* 18 */'\u0018',
050: /* 19 */'\u0019',
051: /* 1A */'\u001A',
052: /* 1B */'\u001B',
053: /* 1C */'\u001C',
054: /* 1D */'\u001D',
055: /* 1E */'\u001E',
056: /* 1F */'\u001F',
057: /* 20 */'\u0020',
058: /* 21 */'\uFFFF', // '!'
059: /* 22 */'\uFFFF', // '"'
060: /* 23 */'\uFFFF', // '#'
061: /* 24 */'\uFFFF', // '$'
062: /* 25 */'\uFFFF', // '%'
063: /* 26 */'\uFF00', // '&'
064: /* 27 */'\u0B9F', // '''
065: /* 28 */'\u0028', // '('
066: /* 29 */'\u0029', // ')'
067: /* 2A */'\uFF01', // '*'
068: /* 2B */'\uFFFF', // '+'
069: /* 2C */'\u002C', // ','
070: /* 2D */'\u002D', // '-'
071: /* 2E */'\u002E', // '.'
072: /* 2F */'\u0BAF', // '/'
073: /* 30 */'\u0BE6', // '0'
074: /* 31 */'\u0BE7', // '1'
075: /* 32 */'\u0BE8', // '2'
076: /* 33 */'\u0BE9', // '3'
077: /* 34 */'\u0BEA', // '4'
078: /* 35 */'\u0BEB', // '5'
079: /* 36 */'\u0BEC', // '6'
080: /* 37 */'\u0BED', // '7'
081: /* 38 */'\u0BEE', // '8'
082: /* 39 */'\u0BEF', // '9'
083: /* 3A */'\uFFFF', // ':'
084: /* 3B */'\u0B9A', // ';'
085: /* 3C */'\u0BB7', // '<'
086: /* 3D */'\uFFFF', // '='
087: /* 3E */'\u0964', // '>' (Devanagari danda)
088: /* 3F */'\uFFFF', // '?'
089: /* 40 */'\uFFFF', // '@'
090: /* 41 */'\u0B93', // 'A'
091: /* 42 */'\u0BB4', // 'B'
092: /* 43 */'\u0BA3', // 'C'
093: /* 44 */'\u0B85', // 'D'
094: /* 45 */'\u0B86', // 'E'
095: /* 46 */'\u0B87', // 'F'
096: /* 47 */'\u0B89', // 'G'
097: /* 48 */'\uFFFF', // 'H'
098: /* 49 */'\uFFFF', // 'I'
099: /* 4A */'\u0BB1', // 'J'
100: /* 4B */'\uFFFF', // 'K'
101: /* 4C */'\uFFFF', // 'L'
102: /* 4D */'\uFFFF', // 'M'
103: /* 4E */'\u0BB3', // 'N'
104: /* 4F */'\uFFFF', // 'O'
105: /* 50 */'\uFFFF', // 'P'
106: /* 51 */'\u0B94', // 'Q'
107: /* 52 */'\u0B88', // 'R'
108: /* 53 */'\u0B8F', // 'S'
109: /* 54 */'\u0B8A', // 'T'
110: /* 55 */'\u0B99', // 'U'
111: /* 56 */'\u0BA9', // 'V'
112: /* 57 */'\u0B90', // 'W'
113: /* 58 */'\uFFFF', // 'X'
114: /* 59 */'\uFFFF', // 'Y'
115: /* 5A */'\u0B8E', // 'Z'
116: /* 5B */'\uFFFF', // '['
117: /* 5C */'\uFFFF', // '\'
118: /* 5D */'\uFFFF', // ']'
119: /* 5E */'\uFFFF', // '^'
120: /* 5F */'\u0B83', // '_'
121: /* 60 */'\u0BCA', // '`'
122: /* 61 */'\u0BCB', // 'a'
123: /* 62 */'\u0BB5', // 'b'
124: /* 63 */'\u0BAE', // 'c'
125: /* 64 */'\u0BCD', // 'd'
126: /* 65 */'\u0BBE', // 'e'
127: /* 66 */'\u0BBF', // 'f'
128: /* 67 */'\u0BC1', // 'g'
129: /* 68 */'\u0BAA', // 'h'
130: /* 69 */'\uFFFF', // 'i'
131: /* 6A */'\u0BB0', // 'j'
132: /* 6B */'\u0B95', // 'k'
133: /* 6C */'\u0BA4', // 'l'
134: /* 6D */'\u0BB8', // 'm'
135: /* 6E */'\u0BB2', // 'n'
136: /* 6F */'\uFFFF', // 'o'
137: /* 70 */'\u0B9C', // 'p'
138: /* 71 */'\u0BCC', // 'q'
139: /* 72 */'\u0BC0', // 'r'
140: /* 73 */'\u0BC7', // 's'
141: /* 74 */'\u0BC2', // 't'
142: /* 75 */'\u0BB9', // 'u'
143: /* 76 */'\u0BA8', // 'v'
144: /* 77 */'\u0BC8', // 'w'
145: /* 78 */'\u0B82', // 'x'
146: /* 79 */'\uFFFF', // 'y'
147: /* 7A */'\u0BC6', // 'z'
148: /* 7B */'\uFFFF', // '{'
149: /* 7C */'\uFFFF', // '|'
150: /* 7D */'\u0B9E', // '}'
151: /* 7E */'\u0B92', // '~'
152: /* 7F */'\u007F' // ''
153: };
154:
155: char[] CONJ_KA_SSA = { '\u0B95', '\u0BCD', '\u0BB7' };
156: char[] CONJ_SSA_RA = { '\u0BB7', '\u0BCD', '\u0BB0' };
157:
158: substitutionTable = new char[][] { CONJ_KA_SSA, CONJ_SSA_RA };
159: }
160:
161: return new IndicInputMethodImpl(keyboardMap, null, null,
162: substitutionTable);
163: }
164: }
|