/* GENERATED SOURCE. DO NOT MODIFY. */ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2001-2016 International Business Machines Corporation and * others. All Rights Reserved. ******************************************************************************* */ package android.icu.lang; import java.util.BitSet; import java.util.Locale; import android.icu.impl.UCharacterProperty; import android.icu.util.ULocale; /** * Constants for ISO 15924 script codes, and related functions. * *
The current set of script code constants supports at least all scripts * that are encoded in the version of Unicode which ICU currently supports. * The names of the constants are usually derived from the * Unicode script property value aliases. * See UAX #24 Unicode Script Property (http://www.unicode.org/reports/tr24/) * and http://www.unicode.org/Public/UCD/latest/ucd/PropertyValueAliases.txt . * *
In addition, constants for many ISO 15924 script codes * are included, for use with language tags, CLDR data, and similar. * Some of those codes are not used in the Unicode Character Database (UCD). * For example, there are no characters that have a UCD script property value of * Hans or Hant. All Han ideographs have the Hani script property value in Unicode. * *
Private-use codes Qaaa..Qabx are not included, except as used in the UCD or in CLDR. * *
Starting with ICU 55, script codes are only added when their scripts * have been or will certainly be encoded in Unicode, * and have been assigned Unicode script property value aliases, * to ensure that their script names are stable and match the names of the constants. * Script codes like Latf and Aran that are not subject to separate encoding * may be added at any time. */ public final class UScript { /** * Invalid code */ public static final int INVALID_CODE = -1; /** * Common */ public static final int COMMON = 0; /* Zyyy */ /** * Inherited */ public static final int INHERITED = 1; /* Zinh */ /* "Code for inherited script", for non-spacing combining marks; also Qaai */ /** * Arabic */ public static final int ARABIC = 2; /* Arab */ /** * Armenian */ public static final int ARMENIAN = 3; /* Armn */ /** * Bengali */ public static final int BENGALI = 4; /* Beng */ /** * Bopomofo */ public static final int BOPOMOFO = 5; /* Bopo */ /** * Cherokee */ public static final int CHEROKEE = 6; /* Cher */ /** * Coptic */ public static final int COPTIC = 7; /* Qaac */ /** * Cyrillic */ public static final int CYRILLIC = 8; /* Cyrl (Cyrs) */ /** * Deseret */ public static final int DESERET = 9; /* Dsrt */ /** * Devanagari */ public static final int DEVANAGARI = 10; /* Deva */ /** * Ethiopic */ public static final int ETHIOPIC = 11; /* Ethi */ /** * Georgian */ public static final int GEORGIAN = 12; /* Geor (Geon; Geoa) */ /** * Gothic */ public static final int GOTHIC = 13; /* Goth */ /** * Greek */ public static final int GREEK = 14; /* Grek */ /** * Gujarati */ public static final int GUJARATI = 15; /* Gujr */ /** * Gurmukhi */ public static final int GURMUKHI = 16; /* Guru */ /** * Han */ public static final int HAN = 17; /* Hani */ /** * Hangul */ public static final int HANGUL = 18; /* Hang */ /** * Hebrew */ public static final int HEBREW = 19; /* Hebr */ /** * Hiragana */ public static final int HIRAGANA = 20; /* Hira */ /** * Kannada */ public static final int KANNADA = 21; /* Knda */ /** * Katakana */ public static final int KATAKANA = 22; /* Kana */ /** * Khmer */ public static final int KHMER = 23; /* Khmr */ /** * Lao */ public static final int LAO = 24; /* Laoo */ /** * Latin */ public static final int LATIN = 25; /* Latn (Latf; Latg) */ /** * Malayalam */ public static final int MALAYALAM = 26; /* Mlym */ /** * Mangolian */ public static final int MONGOLIAN = 27; /* Mong */ /** * Myammar */ public static final int MYANMAR = 28; /* Mymr */ /** * Ogham */ public static final int OGHAM = 29; /* Ogam */ /** * Old Itallic */ public static final int OLD_ITALIC = 30; /* Ital */ /** * Oriya */ public static final int ORIYA = 31; /* Orya */ /** * Runic */ public static final int RUNIC = 32; /* Runr */ /** * Sinhala */ public static final int SINHALA = 33; /* Sinh */ /** * Syriac */ public static final int SYRIAC = 34; /* Syrc (Syrj; Syrn; Syre) */ /** * Tamil */ public static final int TAMIL = 35; /* Taml */ /** * Telugu */ public static final int TELUGU = 36; /* Telu */ /** * Thana */ public static final int THAANA = 37; /* Thaa */ /** * Thai */ public static final int THAI = 38; /* Thai */ /** * Tibetan */ public static final int TIBETAN = 39; /* Tibt */ /** * Unified Canadian Aboriginal Symbols */ public static final int CANADIAN_ABORIGINAL = 40; /* Cans */ /** * Unified Canadian Aboriginal Symbols (alias) */ public static final int UCAS = CANADIAN_ABORIGINAL; /* Cans */ /** * Yi syllables */ public static final int YI = 41; /* Yiii */ /** * Tagalog */ public static final int TAGALOG = 42; /* Tglg */ /** * Hanunooo */ public static final int HANUNOO = 43; /* Hano */ /** * Buhid */ public static final int BUHID = 44; /* Buhd */ /** * Tagbanwa */ public static final int TAGBANWA = 45; /* Tagb */ /** * Braille * Script in Unicode 4 * */ public static final int BRAILLE = 46; /* Brai */ /** * Cypriot * Script in Unicode 4 * */ public static final int CYPRIOT = 47; /* Cprt */ /** * Limbu * Script in Unicode 4 * */ public static final int LIMBU = 48; /* Limb */ /** * Linear B * Script in Unicode 4 * */ public static final int LINEAR_B = 49; /* Linb */ /** * Osmanya * Script in Unicode 4 * */ public static final int OSMANYA = 50; /* Osma */ /** * Shavian * Script in Unicode 4 * */ public static final int SHAVIAN = 51; /* Shaw */ /** * Tai Le * Script in Unicode 4 * */ public static final int TAI_LE = 52; /* Tale */ /** * Ugaritic * Script in Unicode 4 * */ public static final int UGARITIC = 53; /* Ugar */ /** * Script in Unicode 4.0.1 */ public static final int KATAKANA_OR_HIRAGANA = 54; /*Hrkt */ /** * Script in Unicode 4.1 */ public static final int BUGINESE = 55; /* Bugi */ /** * Script in Unicode 4.1 */ public static final int GLAGOLITIC = 56; /* Glag */ /** * Script in Unicode 4.1 */ public static final int KHAROSHTHI = 57; /* Khar */ /** * Script in Unicode 4.1 */ public static final int SYLOTI_NAGRI = 58; /* Sylo */ /** * Script in Unicode 4.1 */ public static final int NEW_TAI_LUE = 59; /* Talu */ /** * Script in Unicode 4.1 */ public static final int TIFINAGH = 60; /* Tfng */ /** * Script in Unicode 4.1 */ public static final int OLD_PERSIAN = 61; /* Xpeo */ /** * ISO 15924 script code */ public static final int BALINESE = 62; /* Bali */ /** * ISO 15924 script code */ public static final int BATAK = 63; /* Batk */ /** * ISO 15924 script code */ public static final int BLISSYMBOLS = 64; /* Blis */ /** * ISO 15924 script code */ public static final int BRAHMI = 65; /* Brah */ /** * ISO 15924 script code */ public static final int CHAM = 66; /* Cham */ /** * ISO 15924 script code */ public static final int CIRTH = 67; /* Cirt */ /** * ISO 15924 script code */ public static final int OLD_CHURCH_SLAVONIC_CYRILLIC = 68; /* Cyrs */ /** * ISO 15924 script code */ public static final int DEMOTIC_EGYPTIAN = 69; /* Egyd */ /** * ISO 15924 script code */ public static final int HIERATIC_EGYPTIAN = 70; /* Egyh */ /** * ISO 15924 script code */ public static final int EGYPTIAN_HIEROGLYPHS = 71; /* Egyp */ /** * ISO 15924 script code */ public static final int KHUTSURI = 72; /* Geok */ /** * ISO 15924 script code */ public static final int SIMPLIFIED_HAN = 73; /* Hans */ /** * ISO 15924 script code */ public static final int TRADITIONAL_HAN = 74; /* Hant */ /** * ISO 15924 script code */ public static final int PAHAWH_HMONG = 75; /* Hmng */ /** * ISO 15924 script code */ public static final int OLD_HUNGARIAN = 76; /* Hung */ /** * ISO 15924 script code */ public static final int HARAPPAN_INDUS = 77; /* Inds */ /** * ISO 15924 script code */ public static final int JAVANESE = 78; /* Java */ /** * ISO 15924 script code */ public static final int KAYAH_LI = 79; /* Kali */ /** * ISO 15924 script code */ public static final int LATIN_FRAKTUR = 80; /* Latf */ /** * ISO 15924 script code */ public static final int LATIN_GAELIC = 81; /* Latg */ /** * ISO 15924 script code */ public static final int LEPCHA = 82; /* Lepc */ /** * ISO 15924 script code */ public static final int LINEAR_A = 83; /* Lina */ /** * ISO 15924 script code */ public static final int MANDAIC = 84; /* Mand */ /** * ISO 15924 script code */ public static final int MANDAEAN = MANDAIC; /** * ISO 15924 script code */ public static final int MAYAN_HIEROGLYPHS = 85; /* Maya */ /** * ISO 15924 script code */ public static final int MEROITIC_HIEROGLYPHS = 86; /* Mero */ /** * ISO 15924 script code */ public static final int MEROITIC = MEROITIC_HIEROGLYPHS; /** * ISO 15924 script code */ public static final int NKO = 87; /* Nkoo */ /** * ISO 15924 script code */ public static final int ORKHON = 88; /* Orkh */ /** * ISO 15924 script code */ public static final int OLD_PERMIC = 89; /* Perm */ /** * ISO 15924 script code */ public static final int PHAGS_PA = 90; /* Phag */ /** * ISO 15924 script code */ public static final int PHOENICIAN = 91; /* Phnx */ /** * ISO 15924 script code */ public static final int MIAO = 92; /* Plrd */ /** * ISO 15924 script code */ public static final int PHONETIC_POLLARD = MIAO; /** * ISO 15924 script code */ public static final int RONGORONGO = 93; /* Roro */ /** * ISO 15924 script code */ public static final int SARATI = 94; /* Sara */ /** * ISO 15924 script code */ public static final int ESTRANGELO_SYRIAC = 95; /* Syre */ /** * ISO 15924 script code */ public static final int WESTERN_SYRIAC = 96; /* Syrj */ /** * ISO 15924 script code */ public static final int EASTERN_SYRIAC = 97; /* Syrn */ /** * ISO 15924 script code */ public static final int TENGWAR = 98; /* Teng */ /** * ISO 15924 script code */ public static final int VAI = 99; /* Vaii */ /** * ISO 15924 script code */ public static final int VISIBLE_SPEECH = 100;/* Visp */ /** * ISO 15924 script code */ public static final int CUNEIFORM = 101;/* Xsux */ /** * ISO 15924 script code */ public static final int UNWRITTEN_LANGUAGES = 102;/* Zxxx */ /** * ISO 15924 script code */ public static final int UNKNOWN = 103;/* Zzzz */ /* Unknown="Code for uncoded script", for unassigned code points */ /** * ISO 15924 script code */ public static final int CARIAN = 104;/* Cari */ /** * ISO 15924 script code */ public static final int JAPANESE = 105;/* Jpan */ /** * ISO 15924 script code */ public static final int LANNA = 106;/* Lana */ /** * ISO 15924 script code */ public static final int LYCIAN = 107;/* Lyci */ /** * ISO 15924 script code */ public static final int LYDIAN = 108;/* Lydi */ /** * ISO 15924 script code */ public static final int OL_CHIKI = 109;/* Olck */ /** * ISO 15924 script code */ public static final int REJANG = 110;/* Rjng */ /** * ISO 15924 script code */ public static final int SAURASHTRA = 111;/* Saur */ /** * ISO 15924 script code for Sutton SignWriting */ public static final int SIGN_WRITING = 112;/* Sgnw */ /** * ISO 15924 script code */ public static final int SUNDANESE = 113;/* Sund */ /** * ISO 15924 script code */ public static final int MOON = 114;/* Moon */ /** * ISO 15924 script code */ public static final int MEITEI_MAYEK = 115;/* Mtei */ /** * ISO 15924 script code */ public static final int IMPERIAL_ARAMAIC = 116;/* Armi */ /** * ISO 15924 script code */ public static final int AVESTAN = 117;/* Avst */ /** * ISO 15924 script code */ public static final int CHAKMA = 118;/* Cakm */ /** * ISO 15924 script code */ public static final int KOREAN = 119;/* Kore */ /** * ISO 15924 script code */ public static final int KAITHI = 120;/* Kthi */ /** * ISO 15924 script code */ public static final int MANICHAEAN = 121;/* Mani */ /** * ISO 15924 script code */ public static final int INSCRIPTIONAL_PAHLAVI = 122;/* Phli */ /** * ISO 15924 script code */ public static final int PSALTER_PAHLAVI = 123;/* Phlp */ /** * ISO 15924 script code */ public static final int BOOK_PAHLAVI = 124;/* Phlv */ /** * ISO 15924 script code */ public static final int INSCRIPTIONAL_PARTHIAN = 125;/* Prti */ /** * ISO 15924 script code */ public static final int SAMARITAN = 126;/* Samr */ /** * ISO 15924 script code */ public static final int TAI_VIET = 127;/* Tavt */ /** * ISO 15924 script code */ public static final int MATHEMATICAL_NOTATION = 128;/* Zmth */ /** * ISO 15924 script code */ public static final int SYMBOLS = 129;/* Zsym */ /** * ISO 15924 script code */ public static final int BAMUM = 130;/* Bamu */ /** * ISO 15924 script code */ public static final int LISU = 131;/* Lisu */ /** * ISO 15924 script code */ public static final int NAKHI_GEBA = 132;/* Nkgb */ /** * ISO 15924 script code */ public static final int OLD_SOUTH_ARABIAN = 133;/* Sarb */ /** * ISO 15924 script code */ public static final int BASSA_VAH = 134;/* Bass */ /** * ISO 15924 script code */ public static final int DUPLOYAN = 135;/* Dupl */ /** * Typo, use DUPLOYAN * @deprecated ICU 54 * @hide original deprecated declaration */ @Deprecated public static final int DUPLOYAN_SHORTAND = DUPLOYAN; /** * ISO 15924 script code */ public static final int ELBASAN = 136;/* Elba */ /** * ISO 15924 script code */ public static final int GRANTHA = 137;/* Gran */ /** * ISO 15924 script code */ public static final int KPELLE = 138;/* Kpel */ /** * ISO 15924 script code */ public static final int LOMA = 139;/* Loma */ /** * Mende Kikakui * ISO 15924 script code */ public static final int MENDE = 140;/* Mend */ /** * ISO 15924 script code */ public static final int MEROITIC_CURSIVE = 141;/* Merc */ /** * ISO 15924 script code */ public static final int OLD_NORTH_ARABIAN = 142;/* Narb */ /** * ISO 15924 script code */ public static final int NABATAEAN = 143;/* Nbat */ /** * ISO 15924 script code */ public static final int PALMYRENE = 144;/* Palm */ /** * ISO 15924 script code */ public static final int KHUDAWADI = 145;/* Sind */ /** * ISO 15924 script code */ public static final int SINDHI = KHUDAWADI; /** * ISO 15924 script code */ public static final int WARANG_CITI = 146;/* Wara */ /** * ISO 15924 script code */ public static final int AFAKA = 147;/* Afak */ /** * ISO 15924 script code */ public static final int JURCHEN = 148;/* Jurc */ /** * ISO 15924 script code */ public static final int MRO = 149;/* Mroo */ /** * ISO 15924 script code */ public static final int NUSHU = 150;/* Nshu */ /** * ISO 15924 script code */ public static final int SHARADA = 151;/* Shrd */ /** * ISO 15924 script code */ public static final int SORA_SOMPENG = 152;/* Sora */ /** * ISO 15924 script code */ public static final int TAKRI = 153;/* Takr */ /** * ISO 15924 script code */ public static final int TANGUT = 154;/* Tang */ /** * ISO 15924 script code */ public static final int WOLEAI = 155;/* Wole */ /** * ISO 15924 script code */ public static final int ANATOLIAN_HIEROGLYPHS = 156;/* Hluw */ /** * ISO 15924 script code */ public static final int KHOJKI = 157;/* Khoj */ /** * ISO 15924 script code */ public static final int TIRHUTA = 158;/* Tirh */ /** * ISO 15924 script code */ public static final int CAUCASIAN_ALBANIAN = 159; /* Aghb */ /** * ISO 15924 script code */ public static final int MAHAJANI = 160; /* Mahj */ /** * ISO 15924 script code */ public static final int AHOM = 161; /* Ahom */ /** * ISO 15924 script code */ public static final int HATRAN = 162; /* Hatr */ /** * ISO 15924 script code */ public static final int MODI = 163; /* Modi */ /** * ISO 15924 script code */ public static final int MULTANI = 164; /* Mult */ /** * ISO 15924 script code */ public static final int PAU_CIN_HAU = 165; /* Pauc */ /** * ISO 15924 script code */ public static final int SIDDHAM = 166; /* Sidd */ /** * ISO 15924 script code */ public static final int ADLAM = 167; /* Adlm */ /** * ISO 15924 script code */ public static final int BHAIKSUKI = 168; /* Bhks */ /** * ISO 15924 script code */ public static final int MARCHEN = 169; /* Marc */ /** * ISO 15924 script code */ public static final int NEWA = 170; /* Newa */ /** * ISO 15924 script code */ public static final int OSAGE = 171; /* Osge */ /** * ISO 15924 script code */ public static final int HAN_WITH_BOPOMOFO = 172; /* Hanb */ /** * ISO 15924 script code */ public static final int JAMO = 173; /* Jamo */ /** * ISO 15924 script code */ public static final int SYMBOLS_EMOJI = 174; /* Zsye */ /** * ISO 15924 script code */ public static final int MASARAM_GONDI = 175; /* Gonm */ /** * ISO 15924 script code */ public static final int SOYOMBO = 176; /* Soyo */ /** * ISO 15924 script code */ public static final int ZANABAZAR_SQUARE = 177; /* Zanb */ /** * ISO 15924 script code */ public static final int DOGRA = 178; /* Dogr */ /***/ public static final int GUNJALA_GONDI = 179; /* Gong */ /***/ public static final int MAKASAR = 180; /* Maka */ /***/ public static final int MEDEFAIDRIN = 181; /* Medf */ /***/ public static final int HANIFI_ROHINGYA = 182; /* Rohg */ /***/ public static final int SOGDIAN = 183; /* Sogd */ /***/ public static final int OLD_SOGDIAN = 184; /* Sogo */ /***/ public static final int ELYMAIC = 185; /* Elym */ /***/ public static final int NYIAKENG_PUACHUE_HMONG = 186; /* Hmnp */ /***/ public static final int NANDINAGARI = 187; /* Nand */ /***/ public static final int WANCHO = 188; /* Wcho */ /***/ public static final int CHORASMIAN = 189; /* Chrs */ /***/ public static final int DIVES_AKURU = 190; /* Diak */ /***/ public static final int KHITAN_SMALL_SCRIPT = 191; /* Kits */ /***/ public static final int YEZIDI = 192; /* Yezi */ /***/ public static final int CYPRO_MINOAN = 193; /* Cpmn */ /***/ public static final int OLD_UYGHUR = 194; /* Ougr */ /***/ public static final int TANGSA = 195; /* Tnsa */ /***/ public static final int TOTO = 196; /* Toto */ /***/ public static final int VITHKUQI = 197; /* Vith */ /***/ public static final int KAWI = 198; /* Kawi */ /***/ public static final int NAG_MUNDARI = 199; /* Nagm */ /** @hide unsupported on Android*/ public static final int ARABIC_NASTALIQ = 200; /* Aran */ /** * One more than the highest normal UScript code. * The highest value is available via UCharacter.getIntPropertyMaxValue(UProperty.SCRIPT). * * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. * @hide unsupported on Android */ @Deprecated public static final int CODE_LIMIT = 201; private static int[] getCodesFromLocale(ULocale locale) { // Multi-script languages, equivalent to the LocaleScript data // that we used to load from locale resource bundles. String lang = locale.getLanguage(); if(lang.equals("ja")) { return new int[] { UScript.KATAKANA, UScript.HIRAGANA, UScript.HAN }; } if(lang.equals("ko")) { return new int[] { UScript.HANGUL, UScript.HAN }; } String script = locale.getScript(); if(lang.equals("zh") && script.equals("Hant")) { return new int[] { UScript.HAN, UScript.BOPOMOFO }; } // Explicit script code. if(script.length() != 0) { int scriptCode = UScript.getCodeFromName(script); if(scriptCode != UScript.INVALID_CODE) { if(scriptCode == UScript.SIMPLIFIED_HAN || scriptCode == UScript.TRADITIONAL_HAN) { scriptCode = UScript.HAN; } return new int[] { scriptCode }; } } return null; } /** * Helper function to find the code from locale. * @param locale The locale. */ private static int[] findCodeFromLocale(ULocale locale) { int[] result = getCodesFromLocale(locale); if(result != null) { return result; } ULocale likely = ULocale.addLikelySubtags(locale); return getCodesFromLocale(likely); } /** * Gets a script codes associated with the given locale or ISO 15924 abbreviation or name. * Returns MALAYAM given "Malayam" OR "Mlym". * Returns LATIN given "en" OR "en_US" * @param locale Locale * @return The script codes array. null if the the code cannot be found. */ public static final int[] getCode(Locale locale){ return findCodeFromLocale(ULocale.forLocale(locale)); } /** * Gets a script codes associated with the given locale or ISO 15924 abbreviation or name. * Returns MALAYAM given "Malayam" OR "Mlym". * Returns LATIN given "en" OR "en_US" * @param locale ULocale * @return The script codes array. null if the the code cannot be found. */ public static final int[] getCode(ULocale locale){ return findCodeFromLocale(locale); } /** * Gets the script codes associated with the given locale or ISO 15924 abbreviation or name. * Returns MALAYAM given "Malayam" OR "Mlym". * Returns LATIN given "en" OR "en_US" * *
Note: To search by short or long script alias only, use
* {@link #getCodeFromName(String)} instead.
* That does a fast lookup with no access of the locale data.
*
* @param nameOrAbbrOrLocale name of the script or ISO 15924 code or locale
* @return The script codes array. null if the the code cannot be found.
*/
public static final int[] getCode(String nameOrAbbrOrLocale) {
boolean triedCode = false;
int lastSepPos = nameOrAbbrOrLocale.indexOf('_');
if (lastSepPos < 0) {
lastSepPos = nameOrAbbrOrLocale.indexOf('-');
}
// Favor interpretation of nameOrAbbrOrLocale as a script alias if either
// 1. nameOrAbbrOrLocale does not contain -/_. Handles Han, Mro, Nko, etc.
// 2. The last instance of -/_ is at offset 3, and the portion after that is
// longer than 4 characters (i.e. not a script or region code). This handles
// Old_Hungarian, Old_Italic, etc. ("old" is a valid language code)
// 3. The last instance of -/_ is at offset 7, and the portion after that is
// 3 characters. This handles New_Tai_Lue ("new" is a valid language code).
if ( lastSepPos < 0
|| (lastSepPos == 3 && nameOrAbbrOrLocale.length() > 8)
|| (lastSepPos == 7 && nameOrAbbrOrLocale.length() == 11) ) {
int propNum = UCharacter.getPropertyValueEnumNoThrow(UProperty.SCRIPT, nameOrAbbrOrLocale);
if (propNum != UProperty.UNDEFINED) {
return new int[] {propNum};
}
triedCode = true;
}
int[] scripts = findCodeFromLocale(new ULocale(nameOrAbbrOrLocale));
if (scripts != null) {
return scripts;
}
if (!triedCode) {
int propNum = UCharacter.getPropertyValueEnumNoThrow(UProperty.SCRIPT, nameOrAbbrOrLocale);
if (propNum != UProperty.UNDEFINED) {
return new int[] {propNum};
}
}
return null;
}
/**
* Returns the script code associated with the given Unicode script property alias
* (name or abbreviation).
* Short aliases are ISO 15924 script codes.
* Returns MALAYAM given "Malayam" OR "Mlym".
*
* @param nameOrAbbr name of the script or ISO 15924 code
* @return The script code value, or INVALID_CODE if the code cannot be found.
*/
public static final int getCodeFromName(String nameOrAbbr) {
int propNum = UCharacter.getPropertyValueEnumNoThrow(UProperty.SCRIPT, nameOrAbbr);
return propNum == UProperty.UNDEFINED ? INVALID_CODE : propNum;
}
/**
* Gets the script code associated with the given codepoint.
* Returns UScript.MALAYAM given 0x0D02
* @param codepoint UChar32 codepoint
* @return The script code
*/
public static final int getScript(int codepoint){
if (codepoint >= UCharacter.MIN_VALUE & codepoint <= UCharacter.MAX_VALUE) {
int scriptX=UCharacterProperty.INSTANCE.getAdditional(codepoint, 0)&UCharacterProperty.SCRIPT_X_MASK;
int codeOrIndex=UCharacterProperty.mergeScriptCodeOrIndex(scriptX);
if(scriptX Some characters are commonly used in multiple scripts.
* For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
*
* @param c code point
* @param set set of script code integers; will be cleared, then bits are set
* corresponding to c's Script_Extensions
* @return negative number of script codes in c's Script_Extensions,
* or the non-negative single Script value
*/
public static final int getScriptExtensions(int c, BitSet set) {
set.clear();
int scriptX=UCharacterProperty.INSTANCE.getAdditional(c, 0)&UCharacterProperty.SCRIPT_X_MASK;
int codeOrIndex=UCharacterProperty.mergeScriptCodeOrIndex(scriptX);
if(scriptX
*
* In other words, if the return value is non-negative, it is c's single Script code
* and the set contains exactly this Script code.
* If the return value is -n, then the set contains c's n>=2 Script_Extensions script codes.
*
*