Home | History | Annotate | Download | only in indic
      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 TamilInputMethodDescriptor extends IndicIMDescriptor
     13 {
     14     private static final Locale TAMIL = new Locale("ta", "IN");
     15 
     16     public TamilInputMethodDescriptor() {
     17     super(TAMIL, "Tamil");
     18     }
     19 
     20     private static char[] keyboardMap;
     21     private static char[][] substitutionTable;
     22 
     23     protected IndicInputMethodImpl getImpl() {
     24     if (keyboardMap == null) {
     25         keyboardMap = new char[] {
     26         /* 00 */ '\u0000',
     27         /* 01 */ '\u0001',
     28         /* 02 */ '\u0002',
     29         /* 03 */ '\u0003',
     30         /* 04 */ '\u0004',
     31         /* 05 */ '\u0005',
     32         /* 06 */ '\u0006',
     33         /* 07 */ '\u0007',
     34         /* 08 */ '\u0008',
     35         /* 09 */ '\u0009',
     36         /* 0A */ '\012',
     37         /* 0B */ '\u000B',
     38         /* 0C */ '\u000C',
     39         /* 0D */ '\015',
     40         /* 0E */ '\u000E',
     41         /* 0F */ '\u000F',
     42         /* 10 */ '\u0010',
     43         /* 11 */ '\u0011',
     44         /* 12 */ '\u0012',
     45         /* 13 */ '\u0013',
     46         /* 14 */ '\u0014',
     47         /* 15 */ '\u0015',
     48         /* 16 */ '\u0016',
     49         /* 17 */ '\u0017',
     50         /* 18 */ '\u0018',
     51         /* 19 */ '\u0019',
     52         /* 1A */ '\u001A',
     53         /* 1B */ '\u001B',
     54         /* 1C */ '\u001C',
     55         /* 1D */ '\u001D',
     56         /* 1E */ '\u001E',
     57         /* 1F */ '\u001F',
     58         /* 20 */ '\u0020',
     59         /* 21 */ '\uFFFF',   // '!'
     60         /* 22 */ '\uFFFF',   // '"'
     61         /* 23 */ '\uFFFF',   // '#'
     62         /* 24 */ '\uFFFF',   // '$'
     63         /* 25 */ '\uFFFF',   // '%'
     64         /* 26 */ '\uFF00',   // '&'
     65         /* 27 */ '\u0B9F',   // '''
     66         /* 28 */ '\u0028',   // '('
     67         /* 29 */ '\u0029',   // ')'
     68         /* 2A */ '\uFF01',   // '*'
     69         /* 2B */ '\uFFFF',   // '+'
     70         /* 2C */ '\u002C',   // ','
     71         /* 2D */ '\u002D',   // '-'
     72         /* 2E */ '\u002E',   // '.'
     73         /* 2F */ '\u0BAF',   // '/'
     74         /* 30 */ '\u0BE6',   // '0'
     75         /* 31 */ '\u0BE7',   // '1'
     76         /* 32 */ '\u0BE8',   // '2'
     77         /* 33 */ '\u0BE9',   // '3'
     78         /* 34 */ '\u0BEA',   // '4'
     79         /* 35 */ '\u0BEB',   // '5'
     80         /* 36 */ '\u0BEC',   // '6'
     81         /* 37 */ '\u0BED',   // '7'
     82         /* 38 */ '\u0BEE',   // '8'
     83         /* 39 */ '\u0BEF',   // '9'
     84         /* 3A */ '\uFFFF',   // ':'
     85         /* 3B */ '\u0B9A',   // ';'
     86         /* 3C */ '\u0BB7',   // '<'
     87         /* 3D */ '\uFFFF',   // '='
     88         /* 3E */ '\u0964',   // '>'  (Devanagari danda)
     89         /* 3F */ '\uFFFF',   // '?'
     90         /* 40 */ '\uFFFF',   // '@'
     91         /* 41 */ '\u0B93',   // 'A'
     92         /* 42 */ '\u0BB4',   // 'B'
     93         /* 43 */ '\u0BA3',   // 'C'
     94         /* 44 */ '\u0B85',   // 'D'
     95         /* 45 */ '\u0B86',   // 'E'
     96         /* 46 */ '\u0B87',   // 'F'
     97         /* 47 */ '\u0B89',   // 'G'
     98         /* 48 */ '\uFFFF',   // 'H'
     99         /* 49 */ '\uFFFF',   // 'I'
    100         /* 4A */ '\u0BB1',   // 'J'
    101         /* 4B */ '\uFFFF',   // 'K'
    102         /* 4C */ '\uFFFF',   // 'L'
    103         /* 4D */ '\uFFFF',   // 'M'
    104         /* 4E */ '\u0BB3',   // 'N'
    105         /* 4F */ '\uFFFF',   // 'O'
    106         /* 50 */ '\uFFFF',   // 'P'
    107         /* 51 */ '\u0B94',   // 'Q'
    108         /* 52 */ '\u0B88',   // 'R'
    109         /* 53 */ '\u0B8F',   // 'S'
    110         /* 54 */ '\u0B8A',   // 'T'
    111         /* 55 */ '\u0B99',   // 'U'
    112         /* 56 */ '\u0BA9',   // 'V'
    113         /* 57 */ '\u0B90',   // 'W'
    114         /* 58 */ '\uFFFF',   // 'X'
    115         /* 59 */ '\uFFFF',   // 'Y'
    116         /* 5A */ '\u0B8E',   // 'Z'
    117         /* 5B */ '\uFFFF',   // '['
    118         /* 5C */ '\uFFFF',   // '\'
    119         /* 5D */ '\uFFFF',   // ']'
    120         /* 5E */ '\uFFFF',   // '^'
    121         /* 5F */ '\u0B83',   // '_'
    122         /* 60 */ '\u0BCA',   // '`'
    123         /* 61 */ '\u0BCB',   // 'a'
    124         /* 62 */ '\u0BB5',   // 'b'
    125         /* 63 */ '\u0BAE',   // 'c'
    126         /* 64 */ '\u0BCD',   // 'd'
    127         /* 65 */ '\u0BBE',   // 'e'
    128         /* 66 */ '\u0BBF',   // 'f'
    129         /* 67 */ '\u0BC1',   // 'g'
    130         /* 68 */ '\u0BAA',   // 'h'
    131         /* 69 */ '\uFFFF',   // 'i'
    132         /* 6A */ '\u0BB0',   // 'j'
    133         /* 6B */ '\u0B95',   // 'k'
    134         /* 6C */ '\u0BA4',   // 'l'
    135         /* 6D */ '\u0BB8',   // 'm'
    136         /* 6E */ '\u0BB2',   // 'n'
    137         /* 6F */ '\uFFFF',   // 'o'
    138         /* 70 */ '\u0B9C',   // 'p'
    139         /* 71 */ '\u0BCC',   // 'q'
    140         /* 72 */ '\u0BC0',   // 'r'
    141         /* 73 */ '\u0BC7',   // 's'
    142         /* 74 */ '\u0BC2',   // 't'
    143         /* 75 */ '\u0BB9',   // 'u'
    144         /* 76 */ '\u0BA8',   // 'v'
    145         /* 77 */ '\u0BC8',   // 'w'
    146         /* 78 */ '\u0B82',   // 'x'
    147         /* 79 */ '\uFFFF',   // 'y'
    148         /* 7A */ '\u0BC6',   // 'z'
    149         /* 7B */ '\uFFFF',   // '{'
    150         /* 7C */ '\uFFFF',   // '|'
    151         /* 7D */ '\u0B9E',   // '}'
    152         /* 7E */ '\u0B92',   // '~'
    153         /* 7F */ '\u007F'    // ''
    154         };
    155 
    156         char[] CONJ_KA_SSA = {'\u0B95', '\u0BCD', '\u0BB7'};
    157         char[] CONJ_SSA_RA = {'\u0BB7', '\u0BCD', '\u0BB0'};
    158 
    159         substitutionTable = new char[][] {
    160         CONJ_KA_SSA, CONJ_SSA_RA
    161         };
    162     }
    163 
    164         return new IndicInputMethodImpl(keyboardMap, null, null, substitutionTable);
    165     }
    166 }
    167 
    168