package org.jaudiotagger.tag.reference; import java.util.HashMap; import java.util.Map; /** * Represents the ISO Script * <p/> * Contains an enum of script, their four letter code and description * with additional method to allow an enum to be found by its four letter code or its description. */ public class ISOScript { private static Map<String, Script> codeMap; private static Map<String, Script> descriptionMap; static { codeMap = new HashMap<String, Script>(); for (Script script : Script.values()) { codeMap.put(script.code, script); } descriptionMap = new HashMap<String, Script>(); for (Script script : Script.values()) { descriptionMap.put(script.description, script); } } /** * @param code * @return enum with this two letter code */ public static Script getScriptByCode(String code) { return codeMap.get(code); } /** * @param description * @return enum with this description */ public static Script getScriptByDescription(String description) { return descriptionMap.get(description); } /** * List of valid Iso Scripts, shows 4 letter abbreviation and script human readable name */ public static enum Script { ARABIC("Arab", "Arabic"), IMPERIAL_ARAMAIC("Armi", "Imperial Aramaic"), ARMENIAN("Armn", "Armenian"), AVESTAN("Avst", "Avestan"), BALINESE("Bali", "Balinese"), BATAK("Batk", "Batak"), BENGALI("Beng", "Bengali"), BLISSYMBOLS("Blis", "Blissymbols"), BOPOMOFO("Bopo", "Bopomofo"), BRAHMI("Brah", "Brahmi"), BRAILLE("Brai", "Braille"), BUGINESE("Bugi", "Buginese"), BUHID("Buhd", "Buhid"), CHAKMA("Cakm", "Chakma"), CANADIAN_SYLLABICS("Cans", "Canadian Syllabics"), CARIAN("Cari", "Carian"), CHAM("Cham", "Cham"), CHEROKEE("Cher", "Cherokee"), CIRTH("Cirt", "Cirth"), COPTIC("Copt", "Coptic"), CYPRIOT("Cprt", "Cypriot"), CYRILLIC("Cyrl", "Cyrillic"), CYRILLIC_OLD_CHURCH_SLAVONIC_VARIANT("Cyrs", "Cyrillic (Old Church Slavonic variant)"), DEVANAGARI("Deva", "Devanagari"), DESERET("Dsrt", "Deseret"), EGYPTIAN_DEMOTIC("Egyd", "Egyptian demotic"), EGYPTIAN_HIERATIC("Egyh", "Egyptian hieratic"), EGYPTIAN_HIEROGLYPHS("Egyp", "Egyptian hieroglyphs"), ETHIOPIC("Ethi", "Ethiopic"), KHUTSURI("Geok", "Khutsuri"), GEORGIAN("Geor", "Georgian"), GLAGOLITIC("Glag", "Glagolitic"), GOTHIC("Goth", "Gothic"), GREEK("Grek", "Greek"), GUJARATI("Gujr", "Gujarati"), GURMUKHI("Guru", "Gurmukhi"), HANGUL("Hang", "Hangul"), HAN_HANJA("Hani", "Han (Hanzi, Kanji, Hanja)"), HANUNOO("Hano", "Hanunoo"), HAN_SIMPLIFIED("Hans", "Han (Simplified variant)"), HAN_TRADITIONAL("Hant", "Han (Traditional variant)"), HEBREW("Hebr", "Hebrew"), HIRAGANA("Hira", "Hiragana"), PAHAWH_HMONG("Hmng", "Pahawh Hmong"), HIRAGANA_KATAKANA("Hrkt", "Hiragana + Katakana"), OLD_HUNGARIAN("Hung", "Old Hungarian"), INDUS("Inds", "Indus"), OLD_ITALIC("Ital", "Old Italic"), JAVANESE("Java", "Javanese"), JAPANESE("Jpan", "Japanese"), KAYAH_LI("Kali", "Kayah Li"), KATAKANA("Kana", "Katakana"), KHAROSHTHI("Khar", "Kharoshthi"), KHMER("Khmr", "Khmer"), KANNADA("Knda", "Kannada"), KOREAN("Kore", "Korean"), KAITHI("Kthi", "Kaithi"), LANNA("Lana", "Lanna"), LAO("Laoo", "Lao"), LATIN_FRAKTUR_VARIANT("Latf", "Latin (Fraktur variant)"), LATIN_GAELIC_VARIANT("Latg", "Latin (Gaelic variant)"), LATIN("Latn", "Latin"), LEPCHA("Lepc", "Lepcha"), LIMBU("Limb", "Limbu"), LINEAR_A("Lina", "Linear A"), LINEAR_B("Linb", "Linear B"), LYCIAN("Lyci", "Lycian"), LYDIAN("Lydi", "Lydian"), MANDAEAN("Mand", "Mandaean"), MANICHAEAN("Mani", "Manichaean"), MAYAN_HIEROGLYPHS("Maya", "Mayan hieroglyphs"), MEROITIC("Mero", "Meroitic"), MALAYALAM("Mlym", "Malayalam"), MONGOLIAN("Mong", "Mongolian"), MOON("Moon", "Moon"), MEITEI_MAYEK("Mtei", "Meitei Mayek"), MYANMAR("Mymr", "Myanmar"), NKO("Nkoo", "N'ko"), OGHAM("Ogam", "Ogham"), OL_CHIKI("Olck", "Ol Chiki"), ORKHON("Orkh", "Orkhon"), ORIYA("Orya", "Oriya"), OSMANYA("Osma", "Osmanya"), OLD_PERMIC("Perm", "Old Permic"), PHAGS_PA("Phag", "Phags-pa"), INSCRIPTIONAL_PAHLAVI("Phli", "Inscriptional Pahlavi"), PSALTER_PAHLAVI("Phlp", "Psalter Pahlavi"), BOOK_PAHLAVI("Phlv", "Book Pahlavi"), PHOENICIAN("Phnx", "Phoenician"), POLLARD_PHONETIC("Plrd", "Pollard Phonetic"), INSCRIPTIONAL_PARTHIAN("Prti", "Inscriptional Parthian"), REJANG("Rjng", "Rejang"), RONGORONGO("Roro", "Rongorongo"), RUNIC("Runr", "Runic"), SAMARITAN("Samr", "Samaritan"), SARATI("Sara", "Sarati"), SAURASHTRA("Saur", "Saurashtra"), SIGNWRITING("Sgnw", "SignWriting"), SHAVIAN("Shaw", "Shavian"), SINHALA("Sinh", "Sinhala"), SUNDANESE("Sund", "Sundanese"), SYLOTI_NAGRI("Sylo", "Syloti Nagri"), SYRIAC("Syrc", "Syriac"), SYRIAC_ESTRANGELO_VARIANT("Syre", "Syriac (Estrangelo variant)"), SYRIAC_WESTERN_VARIANT("Syrj", "Syriac (Western variant)"), SYRIAC_EASTERN_VARIANT("Syrn", "Syriac (Eastern variant)"), TAGBANWA("Tagb", "Tagbanwa"), TAI_LE("Tale", "Tai Le"), TAI_LUE("Talu", "Tai Lue"), TAMIL("Taml", "Tamil"), TAI_VIET("Tavt", "Tai Viet"), TELUGU("Telu", "Telugu"), TENGWAR("Teng", "Tengwar"), TIFINAGH("Tfng", "Tifinagh"), TAGALOG("Tglg", "Tagalog"), THAANA("Thaa", "Thaana"), THAI("Thai", "Thai"), TIBETAN("Tibt", "Tibetan"), UGARITIC("Ugar", "Ugaritic"), VAI("Vaii", "Vai"), VISIBLE_SPEECH("Visp", "Visible Speech"), OLD_PERSIAN("Xpeo", "Old Persian"), CUNEIFORM_SUMERO_AKKADIAN("Xsux", "Cuneiform, Sumero-Akkadian"), YI("Yiii", "Yi"), MATHEMATICAL_NOTATION("Zmth", "Mathematical notation"), SYMBOLS("Zsym", "Symbols"),; private String code; private String description; Script(String code, String description) { this.code = code; this.description = description; } public String getCode() { return code; } public String getDescription() { return description; } public String toString() { return getDescription(); } } }