ICU-1923 update UScript to Unicode 3.2 script names and use uprops.dat instead of hard coded values

X-SVN-Rev: 8910
This commit is contained in:
Ram Viswanadha 2002-06-20 20:41:53 +00:00
parent 71ffbb9966
commit 61fee9013d

View file

@ -9,6 +9,7 @@ package com.ibm.icu.lang;
import com.ibm.icu.impl.ICULocaleData;
import com.ibm.icu.impl.LocaleUtility;
import com.ibm.icu.impl.UCharacterProperty;
import java.util.ResourceBundle;
import java.util.Locale;
@ -70,673 +71,132 @@ public final class UScript {
public static final int TIBETAN = 39; /* Tibt */
public static final int UCAS = 40; /* Cans */
public static final int YI = 41; /* Yiii */
public static final int CODE_LIMIT = 42;
public static final int TAGALOG = 42; /* Tglg */
public static final int HANUNOO = 43; /* Hano */
public static final int BUHID = 44; /* Buhd */
public static final int TAGBANWA = 45; /* Tagb */
public static final int CODE_LIMIT = 46;
private static final String scriptNames[]={
"ARABIC", /* ARABIC */
"ARMENIAN", /* ARMENIAN */
"BENGALI", /* BENGALI */
"BOPOMOFO", /* BOPOMOFO */
"CANADIAN-ABORIGINAL", /* UCAS */
"CHEROKEE", /* CHEROKEE */
"COMMON", /* COMMON */
"CYRILLIC", /* CYRILLIC */
"DESERET", /* DESERET */
"DEVANAGARI", /* DEVANAGARI */
"ETHIOPIC", /* ETHIOPIC */
"GEORGIAN", /* GEORGIAN */
"GOTHIC", /* GOTHIC */
"GREEK", /* GREEK */
"GUJARATI", /* GUJARATI */
"GURMUKHI", /* GURMUKHI */
"HAN", /* HAN */
"HANGUL", /* HANGUL */
"HEBREW", /* HEBREW */
"HIRAGANA", /* HIRAGANA */
"INHERITED", /* INHERITED */
"KANNADA", /* KANNADA */
"KATAKANA", /* KATAKANA */
"KHMER", /* KHMER */
"LATIN", /* LATIN */
"MALAYALAM", /* MALAYALAM */
"MONGOLIAN", /* MONGOLIAN */
"MYANMAR", /* MYANMAR */
"OGHAM", /* OGHAM */
"OLD-ITALIC", /* OLD_ITALIC */
"ORIYA", /* ORIYA */
"RUNIC", /* RUNIC */
"SINHALA", /* SINHALA */
"SYRIAC", /* SYRIAC */
"TAMIL", /* TAMIL */
"TELUGU", /* TELUGU */
"THAANA", /* THANA */
"THAI", /* THAI */
"TIBETAN", /* TIBETAN */
"UCAS", /* UCAS */
"YI", /* YI */
};
private static final String scriptAbbr[]= {
"Arab", /* ARABIC */
"Armn", /* ARMENIAN */
"Beng", /* BENGALI */
"Bopo", /* BOPOMOFO */
"Cans", /* UCAS */
"Cher", /* CHEROKEE */
"Cyrl", /* CYRILLIC */
/* "Cyrs", */ /* CYRILLIC */
"Deva", /* DEVANAGARI */
"Dsrt", /* DESERET */
"Ethi", /* ETHIOPIC */
/* "Geoa", */ /* GEORGIAN */
/* "Geon", */ /* GEORGIAN */
"Geor", /* GEORGIAN */
"Goth", /* GOTHIC */
"Grek", /* GREEK */
"Gujr", /* GUJARATI */
"Guru", /* GURMUKHI */
"Hang", /* HANGUL */
"Hani", /* HAN */
"Hebr", /* HEBREW */
"Hira", /* HIRAGANA */
"Ital", /* OLD_ITALIC */
"Kana", /* KATAKANA */
"Khmr", /* KHMER */
"Knda", /* KANNADA */
"Lao", /* LAO */
/* "Laoo", */ /* LAO */
/* "Latf", */ /* LATIN */
/* "Latg", */ /* LATIN */
"Latn", /* LATIN */
"Mlym", /* MALAYALAM */
"Mong", /* MONGOLIAN */
"Mymr", /* MYANMAR */
"Ogam", /* OGHAM */
"Orya", /* ORIYA */
"Qaac", /* COPTIC */
"Qaai", /* INHERITED */
"Runr", /* RUNIC */
"Sinh", /* SINHALA */
"Syrc", /* SYRIAC */
/* "Syre", */ /* SYRIAC */
/* "Syrj", */ /* SYRIAC */
/* "Syrn", */ /* SYRIAC */
"Taml", /* TAMIL */
"Telu", /* TELUGU */
"Thaa", /* THANA */
"Thai", /* THAI */
"Tibt", /* TIBETAN */
"Yiii", /* YI */
"Zyyy", /* COMMON */
};
private static final int scriptNameCodes[]= {
ARABIC ,
ARMENIAN ,
BENGALI ,
BOPOMOFO ,
UCAS ,
CHEROKEE ,
COMMON ,
CYRILLIC ,
DESERET ,
DEVANAGARI ,
ETHIOPIC ,
GEORGIAN ,
GOTHIC ,
GREEK ,
GUJARATI ,
GURMUKHI ,
HAN ,
HANGUL ,
HEBREW ,
HIRAGANA ,
INHERITED ,
KANNADA ,
KATAKANA ,
KHMER ,
LATIN ,
MALAYALAM ,
MONGOLIAN ,
MYANMAR ,
OGHAM ,
OLD_ITALIC ,
ORIYA ,
RUNIC ,
SINHALA ,
SYRIAC ,
TAMIL ,
TELUGU ,
THAANA ,
THAI ,
TIBETAN ,
UCAS ,
YI
};
private static final int scriptAbbrCodes[] = {
ARABIC ,
ARMENIAN ,
BENGALI ,
BOPOMOFO ,
UCAS ,
CHEROKEE ,
CYRILLIC ,
/* CYRILLIC , */
DEVANAGARI ,
DESERET ,
ETHIOPIC ,
/* GEORGIAN , */
/* GEORGIAN , */
GEORGIAN ,
GOTHIC ,
GREEK ,
GUJARATI ,
GURMUKHI ,
HANGUL ,
HAN ,
HEBREW ,
HIRAGANA ,
OLD_ITALIC ,
KATAKANA ,
KHMER ,
KANNADA ,
LAO ,
/* LAO , */
/* LATIN , */
/* LATIN , */
LATIN ,
MALAYALAM ,
MONGOLIAN ,
MYANMAR ,
OGHAM ,
ORIYA ,
COPTIC ,
INHERITED ,
RUNIC ,
SINHALA ,
/* SYRIAC , */
/* SYRIAC , */
/* SYRIAC , */
SYRIAC ,
TAMIL ,
TELUGU ,
THAANA ,
THAI ,
TIBETAN ,
YI ,
COMMON ,
};
/**********************************************************
*
* WARNING: The below map is machine generated
* by genscrpt after parsing Scripts.txt,
* plese donot edit unless you know what you are doing
*
* TODO: Remove after merging script names to uprops.dat
*
**********************************************************
*/
private static final class UScriptCodeMap {
int firstCodepoint;
int lastCodepoint;
int scriptCode;
public UScriptCodeMap(int firstCp, int lastCp, int code){
firstCodepoint = firstCp;
lastCodepoint = lastCp;
scriptCode = code ;
private static final class NameCodePair{
String name;
int code;
private NameCodePair(String str, int cd){
name = str;
code=cd;
}
};
}
private static final UScriptCodeMap[] scriptCodeIndex = {
new UScriptCodeMap(0x00000000, 0x00000000, COMMON) ,
new UScriptCodeMap(0x00000041, 0x0000005A, LATIN ) ,
new UScriptCodeMap(0x00000061, 0x0000007A, LATIN ) ,
new UScriptCodeMap(0x000000AA, 0x000000AA, LATIN ) ,
new UScriptCodeMap(0x000000B5, 0x000000B5, GREEK ) ,
new UScriptCodeMap(0x000000BA, 0x000000BA, LATIN ) ,
new UScriptCodeMap(0x000000C0, 0x000000D6, LATIN ) ,
new UScriptCodeMap(0x000000D8, 0x000000F6, LATIN ) ,
new UScriptCodeMap(0x000000F8, 0x000001BA, LATIN ) ,
new UScriptCodeMap(0x000001BB, 0x000001BB, LATIN ) ,
new UScriptCodeMap(0x000001BC, 0x000001BF, LATIN ) ,
new UScriptCodeMap(0x000001C0, 0x000001C3, LATIN ) ,
new UScriptCodeMap(0x000001C4, 0x0000021F, LATIN ) ,
new UScriptCodeMap(0x00000222, 0x00000233, LATIN ) ,
new UScriptCodeMap(0x00000250, 0x000002AD, LATIN ) ,
new UScriptCodeMap(0x000002B0, 0x000002B8, LATIN ) ,
new UScriptCodeMap(0x000002E0, 0x000002E4, LATIN ) ,
new UScriptCodeMap(0x00000300, 0x0000034E, INHERITED ) ,
new UScriptCodeMap(0x00000360, 0x00000362, INHERITED ) ,
new UScriptCodeMap(0x0000037A, 0x0000037A, GREEK ) ,
new UScriptCodeMap(0x00000386, 0x00000386, GREEK ) ,
new UScriptCodeMap(0x00000388, 0x0000038A, GREEK ) ,
new UScriptCodeMap(0x0000038C, 0x0000038C, GREEK ) ,
new UScriptCodeMap(0x0000038E, 0x000003A1, GREEK ) ,
new UScriptCodeMap(0x000003A3, 0x000003CE, GREEK ) ,
new UScriptCodeMap(0x000003D0, 0x000003D7, GREEK ) ,
new UScriptCodeMap(0x000003DA, 0x000003F5, GREEK ) ,
new UScriptCodeMap(0x00000400, 0x00000481, CYRILLIC ) ,
new UScriptCodeMap(0x00000483, 0x00000486, CYRILLIC ) ,
new UScriptCodeMap(0x00000488, 0x00000489, INHERITED ) ,
new UScriptCodeMap(0x0000048C, 0x000004C4, CYRILLIC ) ,
new UScriptCodeMap(0x000004C7, 0x000004C8, CYRILLIC ) ,
new UScriptCodeMap(0x000004CB, 0x000004CC, CYRILLIC ) ,
new UScriptCodeMap(0x000004D0, 0x000004F5, CYRILLIC ) ,
new UScriptCodeMap(0x000004F8, 0x000004F9, CYRILLIC ) ,
new UScriptCodeMap(0x00000531, 0x00000556, ARMENIAN ) ,
new UScriptCodeMap(0x00000559, 0x00000559, ARMENIAN ) ,
new UScriptCodeMap(0x00000561, 0x00000587, ARMENIAN ) ,
new UScriptCodeMap(0x00000591, 0x000005A1, INHERITED ) ,
new UScriptCodeMap(0x000005A3, 0x000005B9, INHERITED ) ,
new UScriptCodeMap(0x000005BB, 0x000005BD, INHERITED ) ,
new UScriptCodeMap(0x000005BF, 0x000005BF, INHERITED ) ,
new UScriptCodeMap(0x000005C1, 0x000005C2, INHERITED ) ,
new UScriptCodeMap(0x000005C4, 0x000005C4, INHERITED ) ,
new UScriptCodeMap(0x000005D0, 0x000005EA, HEBREW ) ,
new UScriptCodeMap(0x000005F0, 0x000005F2, HEBREW ) ,
new UScriptCodeMap(0x00000621, 0x0000063A, ARABIC ) ,
new UScriptCodeMap(0x00000641, 0x0000064A, ARABIC ) ,
new UScriptCodeMap(0x0000064B, 0x00000655, INHERITED ) ,
new UScriptCodeMap(0x00000670, 0x00000670, INHERITED ) ,
new UScriptCodeMap(0x00000671, 0x000006D3, ARABIC ) ,
new UScriptCodeMap(0x000006D5, 0x000006D5, ARABIC ) ,
new UScriptCodeMap(0x000006D6, 0x000006DC, INHERITED ) ,
new UScriptCodeMap(0x000006DD, 0x000006DE, INHERITED ) ,
new UScriptCodeMap(0x000006DF, 0x000006E4, INHERITED ) ,
new UScriptCodeMap(0x000006E5, 0x000006E6, ARABIC ) ,
new UScriptCodeMap(0x000006E7, 0x000006E8, INHERITED ) ,
new UScriptCodeMap(0x000006EA, 0x000006ED, INHERITED ) ,
new UScriptCodeMap(0x000006FA, 0x000006FC, ARABIC ) ,
new UScriptCodeMap(0x00000710, 0x00000710, SYRIAC ) ,
new UScriptCodeMap(0x00000711, 0x00000711, SYRIAC ) ,
new UScriptCodeMap(0x00000712, 0x0000072C, SYRIAC ) ,
new UScriptCodeMap(0x00000730, 0x0000074A, SYRIAC ) ,
new UScriptCodeMap(0x00000780, 0x000007A5, THAANA ) ,
new UScriptCodeMap(0x000007A6, 0x000007B0, THAANA ) ,
new UScriptCodeMap(0x00000901, 0x00000902, DEVANAGARI ) ,
new UScriptCodeMap(0x00000903, 0x00000903, DEVANAGARI ) ,
new UScriptCodeMap(0x00000905, 0x00000939, DEVANAGARI ) ,
new UScriptCodeMap(0x0000093C, 0x0000093C, DEVANAGARI ) ,
new UScriptCodeMap(0x0000093D, 0x0000093D, DEVANAGARI ) ,
new UScriptCodeMap(0x0000093E, 0x00000940, DEVANAGARI ) ,
new UScriptCodeMap(0x00000941, 0x00000948, DEVANAGARI ) ,
new UScriptCodeMap(0x00000949, 0x0000094C, DEVANAGARI ) ,
new UScriptCodeMap(0x0000094D, 0x0000094D, DEVANAGARI ) ,
new UScriptCodeMap(0x00000950, 0x00000950, DEVANAGARI ) ,
new UScriptCodeMap(0x00000951, 0x00000954, DEVANAGARI ) ,
new UScriptCodeMap(0x00000958, 0x00000961, DEVANAGARI ) ,
new UScriptCodeMap(0x00000962, 0x00000963, DEVANAGARI ) ,
new UScriptCodeMap(0x00000966, 0x0000096F, DEVANAGARI ) ,
new UScriptCodeMap(0x00000981, 0x00000981, BENGALI ) ,
new UScriptCodeMap(0x00000985, 0x0000098C, BENGALI ) ,
new UScriptCodeMap(0x0000098F, 0x00000990, BENGALI ) ,
new UScriptCodeMap(0x00000993, 0x000009A8, BENGALI ) ,
new UScriptCodeMap(0x000009AA, 0x000009B0, BENGALI ) ,
new UScriptCodeMap(0x000009B2, 0x000009B2, BENGALI ) ,
new UScriptCodeMap(0x000009B6, 0x000009B9, BENGALI ) ,
new UScriptCodeMap(0x000009BC, 0x000009BC, BENGALI ) ,
new UScriptCodeMap(0x000009BE, 0x000009C0, BENGALI ) ,
new UScriptCodeMap(0x000009C1, 0x000009C4, BENGALI ) ,
new UScriptCodeMap(0x000009C7, 0x000009C8, BENGALI ) ,
new UScriptCodeMap(0x000009CB, 0x000009CC, BENGALI ) ,
new UScriptCodeMap(0x000009CD, 0x000009CD, BENGALI ) ,
new UScriptCodeMap(0x000009D7, 0x000009D7, BENGALI ) ,
new UScriptCodeMap(0x000009DC, 0x000009DD, BENGALI ) ,
new UScriptCodeMap(0x000009DF, 0x000009E1, BENGALI ) ,
new UScriptCodeMap(0x000009E2, 0x000009E3, BENGALI ) ,
new UScriptCodeMap(0x000009E6, 0x000009EF, BENGALI ) ,
new UScriptCodeMap(0x000009F0, 0x000009F1, BENGALI ) ,
new UScriptCodeMap(0x00000A02, 0x00000A02, GURMUKHI ) ,
new UScriptCodeMap(0x00000A05, 0x00000A0A, GURMUKHI ) ,
new UScriptCodeMap(0x00000A0F, 0x00000A10, GURMUKHI ) ,
new UScriptCodeMap(0x00000A13, 0x00000A28, GURMUKHI ) ,
new UScriptCodeMap(0x00000A2A, 0x00000A30, GURMUKHI ) ,
new UScriptCodeMap(0x00000A32, 0x00000A33, GURMUKHI ) ,
new UScriptCodeMap(0x00000A35, 0x00000A36, GURMUKHI ) ,
new UScriptCodeMap(0x00000A38, 0x00000A39, GURMUKHI ) ,
new UScriptCodeMap(0x00000A3C, 0x00000A3C, GURMUKHI ) ,
new UScriptCodeMap(0x00000A3E, 0x00000A40, GURMUKHI ) ,
new UScriptCodeMap(0x00000A41, 0x00000A42, GURMUKHI ) ,
new UScriptCodeMap(0x00000A47, 0x00000A48, GURMUKHI ) ,
new UScriptCodeMap(0x00000A4B, 0x00000A4D, GURMUKHI ) ,
new UScriptCodeMap(0x00000A59, 0x00000A5C, GURMUKHI ) ,
new UScriptCodeMap(0x00000A5E, 0x00000A5E, GURMUKHI ) ,
new UScriptCodeMap(0x00000A66, 0x00000A6F, GURMUKHI ) ,
new UScriptCodeMap(0x00000A70, 0x00000A71, GURMUKHI ) ,
new UScriptCodeMap(0x00000A72, 0x00000A74, GURMUKHI ) ,
new UScriptCodeMap(0x00000A81, 0x00000A82, GUJARATI ) ,
new UScriptCodeMap(0x00000A83, 0x00000A83, GUJARATI ) ,
new UScriptCodeMap(0x00000A85, 0x00000A8B, GUJARATI ) ,
new UScriptCodeMap(0x00000A8D, 0x00000A8D, GUJARATI ) ,
new UScriptCodeMap(0x00000A8F, 0x00000A91, GUJARATI ) ,
new UScriptCodeMap(0x00000A93, 0x00000AA8, GUJARATI ) ,
new UScriptCodeMap(0x00000AAA, 0x00000AB0, GUJARATI ) ,
new UScriptCodeMap(0x00000AB2, 0x00000AB3, GUJARATI ) ,
new UScriptCodeMap(0x00000AB5, 0x00000AB9, GUJARATI ) ,
new UScriptCodeMap(0x00000ABC, 0x00000ABC, GUJARATI ) ,
new UScriptCodeMap(0x00000ABD, 0x00000ABD, GUJARATI ) ,
new UScriptCodeMap(0x00000ABE, 0x00000AC0, GUJARATI ) ,
new UScriptCodeMap(0x00000AC1, 0x00000AC5, GUJARATI ) ,
new UScriptCodeMap(0x00000AC7, 0x00000AC8, GUJARATI ) ,
new UScriptCodeMap(0x00000AC9, 0x00000AC9, GUJARATI ) ,
new UScriptCodeMap(0x00000ACB, 0x00000ACC, GUJARATI ) ,
new UScriptCodeMap(0x00000ACD, 0x00000ACD, GUJARATI ) ,
new UScriptCodeMap(0x00000AD0, 0x00000AD0, GUJARATI ) ,
new UScriptCodeMap(0x00000AE0, 0x00000AE0, GUJARATI ) ,
new UScriptCodeMap(0x00000AE6, 0x00000AEF, GUJARATI ) ,
new UScriptCodeMap(0x00000B01, 0x00000B01, ORIYA ) ,
new UScriptCodeMap(0x00000B02, 0x00000B03, ORIYA ) ,
new UScriptCodeMap(0x00000B05, 0x00000B0C, ORIYA ) ,
new UScriptCodeMap(0x00000B0F, 0x00000B10, ORIYA ) ,
new UScriptCodeMap(0x00000B13, 0x00000B28, ORIYA ) ,
new UScriptCodeMap(0x00000B2A, 0x00000B30, ORIYA ) ,
new UScriptCodeMap(0x00000B32, 0x00000B33, ORIYA ) ,
new UScriptCodeMap(0x00000B36, 0x00000B39, ORIYA ) ,
new UScriptCodeMap(0x00000B3C, 0x00000B3C, ORIYA ) ,
new UScriptCodeMap(0x00000B3D, 0x00000B3D, ORIYA ) ,
new UScriptCodeMap(0x00000B3E, 0x00000B3E, ORIYA ) ,
new UScriptCodeMap(0x00000B3F, 0x00000B3F, ORIYA ) ,
new UScriptCodeMap(0x00000B40, 0x00000B40, ORIYA ) ,
new UScriptCodeMap(0x00000B41, 0x00000B43, ORIYA ) ,
new UScriptCodeMap(0x00000B47, 0x00000B48, ORIYA ) ,
new UScriptCodeMap(0x00000B4B, 0x00000B4C, ORIYA ) ,
new UScriptCodeMap(0x00000B4D, 0x00000B4D, ORIYA ) ,
new UScriptCodeMap(0x00000B56, 0x00000B56, ORIYA ) ,
new UScriptCodeMap(0x00000B57, 0x00000B57, ORIYA ) ,
new UScriptCodeMap(0x00000B5C, 0x00000B5D, ORIYA ) ,
new UScriptCodeMap(0x00000B5F, 0x00000B61, ORIYA ) ,
new UScriptCodeMap(0x00000B66, 0x00000B6F, ORIYA ) ,
new UScriptCodeMap(0x00000B82, 0x00000B82, TAMIL ) ,
new UScriptCodeMap(0x00000B83, 0x00000B83, TAMIL ) ,
new UScriptCodeMap(0x00000B85, 0x00000B8A, TAMIL ) ,
new UScriptCodeMap(0x00000B8E, 0x00000B90, TAMIL ) ,
new UScriptCodeMap(0x00000B92, 0x00000B95, TAMIL ) ,
new UScriptCodeMap(0x00000B99, 0x00000B9A, TAMIL ) ,
new UScriptCodeMap(0x00000B9C, 0x00000B9C, TAMIL ) ,
new UScriptCodeMap(0x00000B9E, 0x00000B9F, TAMIL ) ,
new UScriptCodeMap(0x00000BA3, 0x00000BA4, TAMIL ) ,
new UScriptCodeMap(0x00000BA8, 0x00000BAA, TAMIL ) ,
new UScriptCodeMap(0x00000BAE, 0x00000BB5, TAMIL ) ,
new UScriptCodeMap(0x00000BB7, 0x00000BB9, TAMIL ) ,
new UScriptCodeMap(0x00000BBE, 0x00000BBF, TAMIL ) ,
new UScriptCodeMap(0x00000BC0, 0x00000BC0, TAMIL ) ,
new UScriptCodeMap(0x00000BC1, 0x00000BC2, TAMIL ) ,
new UScriptCodeMap(0x00000BC6, 0x00000BC8, TAMIL ) ,
new UScriptCodeMap(0x00000BCA, 0x00000BCC, TAMIL ) ,
new UScriptCodeMap(0x00000BCD, 0x00000BCD, TAMIL ) ,
new UScriptCodeMap(0x00000BD7, 0x00000BD7, TAMIL ) ,
new UScriptCodeMap(0x00000BE7, 0x00000BEF, TAMIL ) ,
new UScriptCodeMap(0x00000BF0, 0x00000BF2, TAMIL ) ,
new UScriptCodeMap(0x00000C01, 0x00000C03, TELUGU ) ,
new UScriptCodeMap(0x00000C05, 0x00000C0C, TELUGU ) ,
new UScriptCodeMap(0x00000C0E, 0x00000C10, TELUGU ) ,
new UScriptCodeMap(0x00000C12, 0x00000C28, TELUGU ) ,
new UScriptCodeMap(0x00000C2A, 0x00000C33, TELUGU ) ,
new UScriptCodeMap(0x00000C35, 0x00000C39, TELUGU ) ,
new UScriptCodeMap(0x00000C3E, 0x00000C40, TELUGU ) ,
new UScriptCodeMap(0x00000C41, 0x00000C44, TELUGU ) ,
new UScriptCodeMap(0x00000C46, 0x00000C48, TELUGU ) ,
new UScriptCodeMap(0x00000C4A, 0x00000C4D, TELUGU ) ,
new UScriptCodeMap(0x00000C55, 0x00000C56, TELUGU ) ,
new UScriptCodeMap(0x00000C60, 0x00000C61, TELUGU ) ,
new UScriptCodeMap(0x00000C66, 0x00000C6F, TELUGU ) ,
new UScriptCodeMap(0x00000C82, 0x00000C83, KANNADA ) ,
new UScriptCodeMap(0x00000C85, 0x00000C8C, KANNADA ) ,
new UScriptCodeMap(0x00000C8E, 0x00000C90, KANNADA ) ,
new UScriptCodeMap(0x00000C92, 0x00000CA8, KANNADA ) ,
new UScriptCodeMap(0x00000CAA, 0x00000CB3, KANNADA ) ,
new UScriptCodeMap(0x00000CB5, 0x00000CB9, KANNADA ) ,
new UScriptCodeMap(0x00000CBE, 0x00000CBE, KANNADA ) ,
new UScriptCodeMap(0x00000CBF, 0x00000CBF, KANNADA ) ,
new UScriptCodeMap(0x00000CC0, 0x00000CC4, KANNADA ) ,
new UScriptCodeMap(0x00000CC6, 0x00000CC6, KANNADA ) ,
new UScriptCodeMap(0x00000CC7, 0x00000CC8, KANNADA ) ,
new UScriptCodeMap(0x00000CCA, 0x00000CCB, KANNADA ) ,
new UScriptCodeMap(0x00000CCC, 0x00000CCD, KANNADA ) ,
new UScriptCodeMap(0x00000CD5, 0x00000CD6, KANNADA ) ,
new UScriptCodeMap(0x00000CDE, 0x00000CDE, KANNADA ) ,
new UScriptCodeMap(0x00000CE0, 0x00000CE1, KANNADA ) ,
new UScriptCodeMap(0x00000CE6, 0x00000CEF, KANNADA ) ,
new UScriptCodeMap(0x00000D02, 0x00000D03, MALAYALAM ) ,
new UScriptCodeMap(0x00000D05, 0x00000D0C, MALAYALAM ) ,
new UScriptCodeMap(0x00000D0E, 0x00000D10, MALAYALAM ) ,
new UScriptCodeMap(0x00000D12, 0x00000D28, MALAYALAM ) ,
new UScriptCodeMap(0x00000D2A, 0x00000D39, MALAYALAM ) ,
new UScriptCodeMap(0x00000D3E, 0x00000D40, MALAYALAM ) ,
new UScriptCodeMap(0x00000D41, 0x00000D43, MALAYALAM ) ,
new UScriptCodeMap(0x00000D46, 0x00000D48, MALAYALAM ) ,
new UScriptCodeMap(0x00000D4A, 0x00000D4C, MALAYALAM ) ,
new UScriptCodeMap(0x00000D4D, 0x00000D4D, MALAYALAM ) ,
new UScriptCodeMap(0x00000D57, 0x00000D57, MALAYALAM ) ,
new UScriptCodeMap(0x00000D60, 0x00000D61, MALAYALAM ) ,
new UScriptCodeMap(0x00000D66, 0x00000D6F, MALAYALAM ) ,
new UScriptCodeMap(0x00000D82, 0x00000D83, SINHALA ) ,
new UScriptCodeMap(0x00000D85, 0x00000D96, SINHALA ) ,
new UScriptCodeMap(0x00000D9A, 0x00000DB1, SINHALA ) ,
new UScriptCodeMap(0x00000DB3, 0x00000DBB, SINHALA ) ,
new UScriptCodeMap(0x00000DBD, 0x00000DBD, SINHALA ) ,
new UScriptCodeMap(0x00000DC0, 0x00000DC6, SINHALA ) ,
new UScriptCodeMap(0x00000DCA, 0x00000DCA, SINHALA ) ,
new UScriptCodeMap(0x00000DCF, 0x00000DD1, SINHALA ) ,
new UScriptCodeMap(0x00000DD2, 0x00000DD4, SINHALA ) ,
new UScriptCodeMap(0x00000DD6, 0x00000DD6, SINHALA ) ,
new UScriptCodeMap(0x00000DD8, 0x00000DDF, SINHALA ) ,
new UScriptCodeMap(0x00000DF2, 0x00000DF3, SINHALA ) ,
new UScriptCodeMap(0x00000E01, 0x00000E30, THAI ) ,
new UScriptCodeMap(0x00000E31, 0x00000E31, THAI ) ,
new UScriptCodeMap(0x00000E32, 0x00000E33, THAI ) ,
new UScriptCodeMap(0x00000E34, 0x00000E3A, THAI ) ,
new UScriptCodeMap(0x00000E40, 0x00000E45, THAI ) ,
new UScriptCodeMap(0x00000E46, 0x00000E46, THAI ) ,
new UScriptCodeMap(0x00000E47, 0x00000E4E, THAI ) ,
new UScriptCodeMap(0x00000E50, 0x00000E59, THAI ) ,
new UScriptCodeMap(0x00000E81, 0x00000E82, LAO ) ,
new UScriptCodeMap(0x00000E84, 0x00000E84, LAO ) ,
new UScriptCodeMap(0x00000E87, 0x00000E88, LAO ) ,
new UScriptCodeMap(0x00000E8A, 0x00000E8A, LAO ) ,
new UScriptCodeMap(0x00000E8D, 0x00000E8D, LAO ) ,
new UScriptCodeMap(0x00000E94, 0x00000E97, LAO ) ,
new UScriptCodeMap(0x00000E99, 0x00000E9F, LAO ) ,
new UScriptCodeMap(0x00000EA1, 0x00000EA3, LAO ) ,
new UScriptCodeMap(0x00000EA5, 0x00000EA5, LAO ) ,
new UScriptCodeMap(0x00000EA7, 0x00000EA7, LAO ) ,
new UScriptCodeMap(0x00000EAA, 0x00000EAB, LAO ) ,
new UScriptCodeMap(0x00000EAD, 0x00000EB0, LAO ) ,
new UScriptCodeMap(0x00000EB1, 0x00000EB1, LAO ) ,
new UScriptCodeMap(0x00000EB2, 0x00000EB3, LAO ) ,
new UScriptCodeMap(0x00000EB4, 0x00000EB9, LAO ) ,
new UScriptCodeMap(0x00000EBB, 0x00000EBC, LAO ) ,
new UScriptCodeMap(0x00000EBD, 0x00000EBD, LAO ) ,
new UScriptCodeMap(0x00000EC0, 0x00000EC4, LAO ) ,
new UScriptCodeMap(0x00000EC6, 0x00000EC6, LAO ) ,
new UScriptCodeMap(0x00000EC8, 0x00000ECD, LAO ) ,
new UScriptCodeMap(0x00000ED0, 0x00000ED9, LAO ) ,
new UScriptCodeMap(0x00000EDC, 0x00000EDD, LAO ) ,
new UScriptCodeMap(0x00000F00, 0x00000F00, TIBETAN ) ,
new UScriptCodeMap(0x00000F18, 0x00000F19, TIBETAN ) ,
new UScriptCodeMap(0x00000F20, 0x00000F29, TIBETAN ) ,
new UScriptCodeMap(0x00000F2A, 0x00000F33, TIBETAN ) ,
new UScriptCodeMap(0x00000F35, 0x00000F35, TIBETAN ) ,
new UScriptCodeMap(0x00000F37, 0x00000F37, TIBETAN ) ,
new UScriptCodeMap(0x00000F39, 0x00000F39, TIBETAN ) ,
new UScriptCodeMap(0x00000F40, 0x00000F47, TIBETAN ) ,
new UScriptCodeMap(0x00000F49, 0x00000F6A, TIBETAN ) ,
new UScriptCodeMap(0x00000F71, 0x00000F7E, TIBETAN ) ,
new UScriptCodeMap(0x00000F7F, 0x00000F7F, TIBETAN ) ,
new UScriptCodeMap(0x00000F80, 0x00000F84, TIBETAN ) ,
new UScriptCodeMap(0x00000F86, 0x00000F87, TIBETAN ) ,
new UScriptCodeMap(0x00000F88, 0x00000F8B, TIBETAN ) ,
new UScriptCodeMap(0x00000F90, 0x00000F97, TIBETAN ) ,
new UScriptCodeMap(0x00000F99, 0x00000FBC, TIBETAN ) ,
new UScriptCodeMap(0x00000FC6, 0x00000FC6, TIBETAN ) ,
new UScriptCodeMap(0x00001000, 0x00001021, MYANMAR ) ,
new UScriptCodeMap(0x00001023, 0x00001027, MYANMAR ) ,
new UScriptCodeMap(0x00001029, 0x0000102A, MYANMAR ) ,
new UScriptCodeMap(0x0000102C, 0x0000102C, MYANMAR ) ,
new UScriptCodeMap(0x0000102D, 0x00001030, MYANMAR ) ,
new UScriptCodeMap(0x00001031, 0x00001031, MYANMAR ) ,
new UScriptCodeMap(0x00001032, 0x00001032, MYANMAR ) ,
new UScriptCodeMap(0x00001036, 0x00001037, MYANMAR ) ,
new UScriptCodeMap(0x00001038, 0x00001038, MYANMAR ) ,
new UScriptCodeMap(0x00001039, 0x00001039, MYANMAR ) ,
new UScriptCodeMap(0x00001040, 0x00001049, MYANMAR ) ,
new UScriptCodeMap(0x00001050, 0x00001055, MYANMAR ) ,
new UScriptCodeMap(0x00001056, 0x00001057, MYANMAR ) ,
new UScriptCodeMap(0x00001058, 0x00001059, MYANMAR ) ,
new UScriptCodeMap(0x000010A0, 0x000010C5, GEORGIAN ) ,
new UScriptCodeMap(0x000010D0, 0x000010F6, GEORGIAN ) ,
new UScriptCodeMap(0x00001100, 0x00001159, HANGUL ) ,
new UScriptCodeMap(0x0000115F, 0x000011A2, HANGUL ) ,
new UScriptCodeMap(0x000011A8, 0x000011F9, HANGUL ) ,
new UScriptCodeMap(0x00001200, 0x00001206, ETHIOPIC ) ,
new UScriptCodeMap(0x00001208, 0x00001246, ETHIOPIC ) ,
new UScriptCodeMap(0x00001248, 0x00001248, ETHIOPIC ) ,
new UScriptCodeMap(0x0000124A, 0x0000124D, ETHIOPIC ) ,
new UScriptCodeMap(0x00001250, 0x00001256, ETHIOPIC ) ,
new UScriptCodeMap(0x00001258, 0x00001258, ETHIOPIC ) ,
new UScriptCodeMap(0x0000125A, 0x0000125D, ETHIOPIC ) ,
new UScriptCodeMap(0x00001260, 0x00001286, ETHIOPIC ) ,
new UScriptCodeMap(0x00001288, 0x00001288, ETHIOPIC ) ,
new UScriptCodeMap(0x0000128A, 0x0000128D, ETHIOPIC ) ,
new UScriptCodeMap(0x00001290, 0x000012AE, ETHIOPIC ) ,
new UScriptCodeMap(0x000012B0, 0x000012B0, ETHIOPIC ) ,
new UScriptCodeMap(0x000012B2, 0x000012B5, ETHIOPIC ) ,
new UScriptCodeMap(0x000012B8, 0x000012BE, ETHIOPIC ) ,
new UScriptCodeMap(0x000012C0, 0x000012C0, ETHIOPIC ) ,
new UScriptCodeMap(0x000012C2, 0x000012C5, ETHIOPIC ) ,
new UScriptCodeMap(0x000012C8, 0x000012CE, ETHIOPIC ) ,
new UScriptCodeMap(0x000012D0, 0x000012D6, ETHIOPIC ) ,
new UScriptCodeMap(0x000012D8, 0x000012EE, ETHIOPIC ) ,
new UScriptCodeMap(0x000012F0, 0x0000130E, ETHIOPIC ) ,
new UScriptCodeMap(0x00001310, 0x00001310, ETHIOPIC ) ,
new UScriptCodeMap(0x00001312, 0x00001315, ETHIOPIC ) ,
new UScriptCodeMap(0x00001318, 0x0000131E, ETHIOPIC ) ,
new UScriptCodeMap(0x00001320, 0x00001346, ETHIOPIC ) ,
new UScriptCodeMap(0x00001348, 0x0000135A, ETHIOPIC ) ,
new UScriptCodeMap(0x00001369, 0x00001371, ETHIOPIC ) ,
new UScriptCodeMap(0x00001372, 0x0000137C, ETHIOPIC ) ,
new UScriptCodeMap(0x000013A0, 0x000013F4, CHEROKEE ) ,
new UScriptCodeMap(0x00001401, 0x0000166C, UCAS ) ,
new UScriptCodeMap(0x0000166F, 0x00001676, UCAS ) ,
new UScriptCodeMap(0x00001681, 0x0000169A, OGHAM ) ,
new UScriptCodeMap(0x000016A0, 0x000016EA, RUNIC ) ,
new UScriptCodeMap(0x000016EE, 0x000016F0, RUNIC ) ,
new UScriptCodeMap(0x00001780, 0x000017B3, KHMER ) ,
new UScriptCodeMap(0x000017B4, 0x000017B6, KHMER ) ,
new UScriptCodeMap(0x000017B7, 0x000017BD, KHMER ) ,
new UScriptCodeMap(0x000017BE, 0x000017C5, KHMER ) ,
new UScriptCodeMap(0x000017C6, 0x000017C6, KHMER ) ,
new UScriptCodeMap(0x000017C7, 0x000017C8, KHMER ) ,
new UScriptCodeMap(0x000017C9, 0x000017D3, KHMER ) ,
new UScriptCodeMap(0x000017E0, 0x000017E9, KHMER ) ,
new UScriptCodeMap(0x00001810, 0x00001819, MONGOLIAN ) ,
new UScriptCodeMap(0x00001820, 0x00001842, MONGOLIAN ) ,
new UScriptCodeMap(0x00001843, 0x00001843, MONGOLIAN ) ,
new UScriptCodeMap(0x00001844, 0x00001877, MONGOLIAN ) ,
new UScriptCodeMap(0x00001880, 0x000018A8, MONGOLIAN ) ,
new UScriptCodeMap(0x000018A9, 0x000018A9, MONGOLIAN ) ,
new UScriptCodeMap(0x00001E00, 0x00001E9B, LATIN ) ,
new UScriptCodeMap(0x00001EA0, 0x00001EF9, LATIN ) ,
new UScriptCodeMap(0x00001F00, 0x00001F15, GREEK ) ,
new UScriptCodeMap(0x00001F18, 0x00001F1D, GREEK ) ,
new UScriptCodeMap(0x00001F20, 0x00001F45, GREEK ) ,
new UScriptCodeMap(0x00001F48, 0x00001F4D, GREEK ) ,
new UScriptCodeMap(0x00001F50, 0x00001F57, GREEK ) ,
new UScriptCodeMap(0x00001F59, 0x00001F59, GREEK ) ,
new UScriptCodeMap(0x00001F5B, 0x00001F5B, GREEK ) ,
new UScriptCodeMap(0x00001F5D, 0x00001F5D, GREEK ) ,
new UScriptCodeMap(0x00001F5F, 0x00001F7D, GREEK ) ,
new UScriptCodeMap(0x00001F80, 0x00001FB4, GREEK ) ,
new UScriptCodeMap(0x00001FB6, 0x00001FBC, GREEK ) ,
new UScriptCodeMap(0x00001FBE, 0x00001FBE, GREEK ) ,
new UScriptCodeMap(0x00001FC2, 0x00001FC4, GREEK ) ,
new UScriptCodeMap(0x00001FC6, 0x00001FCC, GREEK ) ,
new UScriptCodeMap(0x00001FD0, 0x00001FD3, GREEK ) ,
new UScriptCodeMap(0x00001FD6, 0x00001FDB, GREEK ) ,
new UScriptCodeMap(0x00001FE0, 0x00001FEC, GREEK ) ,
new UScriptCodeMap(0x00001FF2, 0x00001FF4, GREEK ) ,
new UScriptCodeMap(0x00001FF6, 0x00001FFC, GREEK ) ,
new UScriptCodeMap(0x0000207F, 0x0000207F, LATIN ) ,
new UScriptCodeMap(0x000020D0, 0x000020DC, INHERITED ) ,
new UScriptCodeMap(0x000020DD, 0x000020E0, INHERITED ) ,
new UScriptCodeMap(0x000020E1, 0x000020E1, INHERITED ) ,
new UScriptCodeMap(0x000020E2, 0x000020E3, INHERITED ) ,
new UScriptCodeMap(0x00002126, 0x00002126, GREEK ) ,
new UScriptCodeMap(0x0000212A, 0x0000212B, LATIN ) ,
new UScriptCodeMap(0x00002E80, 0x00002E99, HAN ) ,
new UScriptCodeMap(0x00002E9B, 0x00002EF3, HAN ) ,
new UScriptCodeMap(0x00002F00, 0x00002FD5, HAN ) ,
new UScriptCodeMap(0x00003005, 0x00003005, HAN ) ,
new UScriptCodeMap(0x00003007, 0x00003007, HAN ) ,
new UScriptCodeMap(0x00003021, 0x00003029, HAN ) ,
new UScriptCodeMap(0x0000302A, 0x0000302F, INHERITED ) ,
new UScriptCodeMap(0x00003038, 0x0000303A, HAN ) ,
new UScriptCodeMap(0x00003041, 0x00003094, HIRAGANA ) ,
new UScriptCodeMap(0x00003099, 0x0000309A, INHERITED ) ,
new UScriptCodeMap(0x0000309D, 0x0000309E, HIRAGANA ) ,
new UScriptCodeMap(0x000030A1, 0x000030FA, KATAKANA ) ,
new UScriptCodeMap(0x000030FD, 0x000030FE, KATAKANA ) ,
new UScriptCodeMap(0x00003105, 0x0000312C, BOPOMOFO ) ,
new UScriptCodeMap(0x00003131, 0x0000318E, HANGUL ) ,
new UScriptCodeMap(0x000031A0, 0x000031B7, BOPOMOFO ) ,
new UScriptCodeMap(0x00003400, 0x00004DB5, HAN ) ,
new UScriptCodeMap(0x00004E00, 0x00009FA5, HAN ) ,
new UScriptCodeMap(0x0000A000, 0x0000A48C, YI ) ,
new UScriptCodeMap(0x0000A490, 0x0000A4A1, YI ) ,
new UScriptCodeMap(0x0000A4A4, 0x0000A4B3, YI ) ,
new UScriptCodeMap(0x0000A4B5, 0x0000A4C0, YI ) ,
new UScriptCodeMap(0x0000A4C2, 0x0000A4C4, YI ) ,
new UScriptCodeMap(0x0000A4C6, 0x0000A4C6, YI ) ,
new UScriptCodeMap(0x0000AC00, 0x0000D7A3, HANGUL ) ,
new UScriptCodeMap(0x0000F900, 0x0000FA2D, HAN ) ,
new UScriptCodeMap(0x0000FB00, 0x0000FB06, LATIN ) ,
new UScriptCodeMap(0x0000FB13, 0x0000FB17, ARMENIAN ) ,
new UScriptCodeMap(0x0000FB1D, 0x0000FB1D, HEBREW ) ,
new UScriptCodeMap(0x0000FB1E, 0x0000FB1E, INHERITED ) ,
new UScriptCodeMap(0x0000FB1F, 0x0000FB28, HEBREW ) ,
new UScriptCodeMap(0x0000FB2A, 0x0000FB36, HEBREW ) ,
new UScriptCodeMap(0x0000FB38, 0x0000FB3C, HEBREW ) ,
new UScriptCodeMap(0x0000FB3E, 0x0000FB3E, HEBREW ) ,
new UScriptCodeMap(0x0000FB40, 0x0000FB41, HEBREW ) ,
new UScriptCodeMap(0x0000FB43, 0x0000FB44, HEBREW ) ,
new UScriptCodeMap(0x0000FB46, 0x0000FB4F, HEBREW ) ,
new UScriptCodeMap(0x0000FB50, 0x0000FBB1, ARABIC ) ,
new UScriptCodeMap(0x0000FBD3, 0x0000FD3D, ARABIC ) ,
new UScriptCodeMap(0x0000FD50, 0x0000FD8F, ARABIC ) ,
new UScriptCodeMap(0x0000FD92, 0x0000FDC7, ARABIC ) ,
new UScriptCodeMap(0x0000FDF0, 0x0000FDFB, ARABIC ) ,
new UScriptCodeMap(0x0000FE20, 0x0000FE23, INHERITED ) ,
new UScriptCodeMap(0x0000FE70, 0x0000FE72, ARABIC ) ,
new UScriptCodeMap(0x0000FE74, 0x0000FE74, ARABIC ) ,
new UScriptCodeMap(0x0000FE76, 0x0000FEFC, ARABIC ) ,
new UScriptCodeMap(0x0000FF21, 0x0000FF3A, LATIN ) ,
new UScriptCodeMap(0x0000FF41, 0x0000FF5A, LATIN ) ,
new UScriptCodeMap(0x0000FF66, 0x0000FF6F, KATAKANA ) ,
new UScriptCodeMap(0x0000FF71, 0x0000FF9D, KATAKANA ) ,
new UScriptCodeMap(0x0000FFA0, 0x0000FFBE, HANGUL ) ,
new UScriptCodeMap(0x0000FFC2, 0x0000FFC7, HANGUL ) ,
new UScriptCodeMap(0x0000FFCA, 0x0000FFCF, HANGUL ) ,
new UScriptCodeMap(0x0000FFD2, 0x0000FFD7, HANGUL ) ,
new UScriptCodeMap(0x0000FFDA, 0x0000FFDC, HANGUL ) ,
new UScriptCodeMap(0x00010300, 0x0001031E, OLD_ITALIC ) ,
new UScriptCodeMap(0x00010330, 0x00010349, GOTHIC ) ,
new UScriptCodeMap(0x0001034A, 0x0001034A, GOTHIC ) ,
new UScriptCodeMap(0x00010400, 0x00010425, DESERET ) ,
new UScriptCodeMap(0x00010428, 0x0001044D, DESERET ) ,
new UScriptCodeMap(0x0001D167, 0x0001D169, INHERITED ) ,
new UScriptCodeMap(0x0001D17B, 0x0001D182, INHERITED ) ,
new UScriptCodeMap(0x0001D185, 0x0001D18B, INHERITED ) ,
new UScriptCodeMap(0x0001D1AA, 0x0001D1AD, INHERITED ) ,
new UScriptCodeMap(0x00020000, 0x0002A6D6, HAN ) ,
private static final NameCodePair[] scriptNames={
new NameCodePair( "ARABIC", ARABIC ),
new NameCodePair( "ARMENIAN", ARMENIAN ),
new NameCodePair( "BENGALI", BENGALI ),
new NameCodePair( "BOPOMOFO", BOPOMOFO ),
new NameCodePair( "BUHID", BUHID ),
new NameCodePair( "CANADIAN_ABORIGINAL", UCAS ),
new NameCodePair( "CHEROKEE", CHEROKEE ),
new NameCodePair( "COMMON", COMMON ),
new NameCodePair( "CYRILLIC", CYRILLIC ),
new NameCodePair( "DESERET", DESERET ),
new NameCodePair( "DEVANAGARI", DEVANAGARI ),
new NameCodePair( "ETHIOPIC", ETHIOPIC ),
new NameCodePair( "GEORGIAN", GEORGIAN ),
new NameCodePair( "GOTHIC", GOTHIC ),
new NameCodePair( "GREEK", GREEK ),
new NameCodePair( "GUJARATI", GUJARATI ),
new NameCodePair( "GURMUKHI", GURMUKHI ),
new NameCodePair( "HAN", HAN ),
new NameCodePair( "HANGUL", HANGUL ),
new NameCodePair( "HANUNOO", HANUNOO ),
new NameCodePair( "HEBREW", HEBREW ),
new NameCodePair( "HIRAGANA", HIRAGANA ),
new NameCodePair( "INHERITED", INHERITED ),
new NameCodePair( "KANNADA", KANNADA ),
new NameCodePair( "KATAKANA", KATAKANA ),
new NameCodePair( "KHMER", KHMER ),
new NameCodePair( "LATIN", LATIN ),
new NameCodePair( "MALAYALAM", MALAYALAM ),
new NameCodePair( "MONGOLIAN", MONGOLIAN ),
new NameCodePair( "MYANMAR", MYANMAR ),
new NameCodePair( "OGHAM", OGHAM ),
new NameCodePair( "OLD_ITALIC", OLD_ITALIC ),
new NameCodePair( "ORIYA", ORIYA ),
new NameCodePair( "RUNIC", RUNIC ),
new NameCodePair( "SINHALA", SINHALA ),
new NameCodePair( "SYRIAC", SYRIAC ),
new NameCodePair( "TAGALOG", TAGALOG ),
new NameCodePair( "TAGBANWA", TAGBANWA ),
new NameCodePair( "TAMIL", TAMIL ),
new NameCodePair( "TELUGU", TELUGU ),
new NameCodePair( "THAANA", THAANA ),
new NameCodePair( "THAI", THAI ),
new NameCodePair( "TIBETAN", TIBETAN ),
new NameCodePair( "UCAS", UCAS ),
new NameCodePair( "YI", YI )
};
/* script abbreviations with codes, sorted by abbreviations */
private static final NameCodePair[] scriptAbbr= {
new NameCodePair( "Arab", ARABIC ),
new NameCodePair( "Armn", ARMENIAN ),
new NameCodePair( "Beng", BENGALI ),
new NameCodePair( "Bopo", BOPOMOFO ),
new NameCodePair( "Buhd", BUHID ),
new NameCodePair( "Cans", UCAS ),
new NameCodePair( "Cher", CHEROKEE ),
new NameCodePair( "Cyrl", CYRILLIC ),
/* new NameCodePair( "Cyrs", CYRILLIC ), */
new NameCodePair( "Deva", DEVANAGARI ),
new NameCodePair( "Dsrt", DESERET ),
new NameCodePair( "Ethi", ETHIOPIC ),
/* new NameCodePair( Geoa", GEORGIAN ), */
/* new NameCodePair( Geon", GEORGIAN ), */
new NameCodePair( "Geor", GEORGIAN ),
new NameCodePair( "Goth", GOTHIC ),
new NameCodePair( "Grek", GREEK ),
new NameCodePair( "Gujr", GUJARATI ),
new NameCodePair( "Guru", GURMUKHI ),
new NameCodePair( "Hang", HANGUL ),
new NameCodePair( "Hani", HAN ),
new NameCodePair( "Hano", HANUNOO ),
new NameCodePair( "Hebr", HEBREW ),
new NameCodePair( "Hira", HIRAGANA ),
new NameCodePair( "Ital", OLD_ITALIC ),
new NameCodePair( "Kana", KATAKANA ),
new NameCodePair( "Khmr", KHMER ),
new NameCodePair( "Knda", KANNADA ),
new NameCodePair( "Lao", LAO ),
/* new NameCodePair( "Laoo", LAO ), */
/* new NameCodePair( "Latf", LATIN ), */
/* new NameCodePair( "Latg", LATIN ), */
new NameCodePair( "Latn", LATIN ),
new NameCodePair( "Mlym", MALAYALAM ),
new NameCodePair( "Mong", MONGOLIAN ),
new NameCodePair( "Mymr", MYANMAR ),
new NameCodePair( "Ogam", OGHAM ),
new NameCodePair( "Orya", ORIYA ),
new NameCodePair( "Qaac", COPTIC ),
new NameCodePair( "Qaai", INHERITED ),
new NameCodePair( "Runr", RUNIC ),
new NameCodePair( "Sinh", SINHALA ),
new NameCodePair( "Syrc", SYRIAC ),
/* new NameCodePair( "Syre", SYRIAC ), */
/* new NameCodePair( "Syrj", SYRIAC ), */
/* new NameCodePair( "Syrn", SYRIAC ), */
new NameCodePair( "Tagb", TAGBANWA ),
new NameCodePair( "Taml", TAMIL ),
new NameCodePair( "Telu", TELUGU ),
new NameCodePair( "Tglg", TAGALOG ),
new NameCodePair( "Thaa", THAANA ),
new NameCodePair( "Thai", THAI ),
new NameCodePair( "Tibt", TIBETAN ),
new NameCodePair( "Yiii", YI ),
new NameCodePair( "Zyyy", COMMON )
};
/* binary search the string array */
private static int findStringIndex(String[] sortedArr, String target){
private static int findStringIndex(NameCodePair[] sortedArr, String target){
int size = sortedArr.length;
int left, middle, right,rc;
left =0;
@ -745,7 +205,7 @@ public final class UScript {
target = target.toUpperCase();
while(left <= right){
middle = (left+right)/2;
rc=sortedArr[middle].toUpperCase().compareTo(target);
rc=sortedArr[middle].name.toUpperCase().compareTo(target);
if(rc<0){
left = middle+1;
}else if(rc >0){
@ -758,18 +218,21 @@ public final class UScript {
}
/* linearly search the array and return the index */
private static int findCodeIndex(int[] unsorted, int target){
private static int findCodeIndex(NameCodePair[] unsorted, int target){
int size = unsorted.length;
int i=0;
while(i<size){
if(target == unsorted[i]){
if(target == unsorted[i].code){
return i;
}
i++;
}
return -1;
}
private static final int SCRIPT_MASK = 0x0000007f;
private static final UCharacterProperty prop= UCharacterProperty.getInstance();
/**
* Helper function to find the code from locale.
* @param Locale the locale.
@ -790,53 +253,17 @@ public final class UScript {
for (int i = 0; i < scripts.length; ++i) {
int strIndex = findStringIndex(scriptAbbr, scripts[i]);
if (strIndex != -1) {
result[w++] = scriptAbbrCodes[strIndex];
result[w++] = scriptAbbr[strIndex].code;
}
}
if (w < result.length) {
throw new InternalError("bad locale data, listed " + scripts.length + " scripts but found only " + w);
/*
int[] newResult = new int[w];
System.arraycopy(result, 0, newResult, 0, w);
result = newResult;
*/
}
return result;
}
/* binary search the string array */
private static int findScriptCode(int codepoint){
int left, middle, right,rc;
left =0;
right= scriptCodeIndex.length-1;
while(left <= right){
middle = (left+right)/2;
/* check if the codepoint is the valid range */
if(scriptCodeIndex[middle].firstCodepoint<= codepoint &&
scriptCodeIndex[middle].lastCodepoint>= codepoint){
rc = 0;
}else if(codepoint> scriptCodeIndex[middle].lastCodepoint){
rc =-1;
}else {
rc = 1;
}
if(rc<0){
left = middle+1;
}else if(rc >0){
right = middle -1;
}else{
return scriptCodeIndex[middle].scriptCode;
}
}
return COMMON;
}
/**
* Gets a script codes associated with the given locale or ISO 15924 abbreviation or name.
* Returns MALAYAM given "Malayam" OR "Mlym".
@ -849,7 +276,7 @@ public final class UScript {
public static final int[] getCode(Locale locale)
throws MissingResourceException {
return findCodeFromLocale(locale);
}
}
/**
* Gets a script codes associated with the given locale or ISO 15924 abbreviation or name.
@ -869,13 +296,13 @@ public final class UScript {
strIndex = findStringIndex(scriptNames, nameOrAbbrOrLocale);
if(strIndex>=0 && strIndex < scriptNames.length){
code[0] = scriptNameCodes[strIndex];
code[0] = scriptNames[strIndex].code;
}
/* we did not find in names array so try abbr array*/
if(code[0] == INVALID_CODE){
strIndex = findStringIndex(scriptAbbr, nameOrAbbrOrLocale);
if(strIndex>=0 && strIndex < scriptAbbr.length){
code[0] = scriptAbbrCodes[strIndex];
code[0] = scriptAbbr[strIndex].code;
}
}
/* we still haven't found it try locale */
@ -896,7 +323,7 @@ public final class UScript {
*/
public static final int getScript(int codepoint){
if (codepoint >= UCharacter.MIN_VALUE & codepoint <= UCharacter.MAX_VALUE) {
return findScriptCode(codepoint);
return (int)(prop.getAdditional(codepoint,0) & SCRIPT_MASK);
}else{
throw new IllegalArgumentException(Integer.toString(codepoint));
}
@ -915,9 +342,9 @@ public final class UScript {
if(scriptCode > CODE_LIMIT){
throw new IllegalArgumentException(Integer.toString(scriptCode));
}
index = findCodeIndex(scriptNameCodes,scriptCode);
index = findCodeIndex(scriptNames,scriptCode);
if(index >=0){
return scriptNames[index];
return scriptNames[index].name;
}else{
throw new IllegalArgumentException(Integer.toString(scriptCode));
}
@ -936,9 +363,9 @@ public final class UScript {
if(scriptCode > CODE_LIMIT){
throw new IllegalArgumentException(Integer.toString(scriptCode));
}
index = findCodeIndex(scriptAbbrCodes,scriptCode);
index = findCodeIndex(scriptAbbr,scriptCode);
if(index >=0){
return scriptAbbr[index];
return scriptAbbr[index].name;
}else{
throw new IllegalArgumentException(Integer.toString(scriptCode));
}