You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2018/02/17 10:47:48 UTC

svn commit: r1824583 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeScript.java

Author: tilman
Date: Sat Feb 17 10:47:48 2018
New Revision: 1824583

URL: http://svn.apache.org/viewvc?rev=1824583&view=rev
Log:
PDFBOX-4106: modify map initialization for Sonar

Modified:
    pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeScript.java

Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeScript.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeScript.java?rev=1824583&r1=1824582&r2=1824583&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeScript.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeScript.java Sat Feb 17 10:47:48 2018
@@ -36,7 +36,8 @@ import org.apache.commons.logging.LogFac
  *
  * @author Aaron Madlon-Kay
  *
- * @see <a href="https://www.microsoft.com/typography/otspec/scripttags.htm">Microsoft Typography: Script Tags</a>
+ * @see <a href="https://www.microsoft.com/typography/otspec/scripttags.htm">Microsoft Typography:
+ * Script Tags</a>
  * @see <a href="https://www.unicode.org/reports/tr24/">Unicode Script Property</a>
  */
 public final class OpenTypeScript
@@ -60,150 +61,157 @@ public final class OpenTypeScript
 
     static
     {
-        Map<String, String[]> map = new HashMap<>();
-        map.put("Adlam", new String[] { "adlm" });
-        map.put("Ahom", new String[] { "ahom" });
-        map.put("Anatolian_Hieroglyphs", new String[] { "hluw" });
-        map.put("Arabic", new String[] { "arab" });
-        map.put("Armenian", new String[] { "armn" });
-        map.put("Avestan", new String[] { "avst" });
-        map.put("Balinese", new String[] { "bali" });
-        map.put("Bamum", new String[] { "bamu" });
-        map.put("Bassa_Vah", new String[] { "bass" });
-        map.put("Batak", new String[] { "batk" });
-        map.put("Bengali", new String[] { "bng2", "beng" });
-        map.put("Bhaiksuki", new String[] { "bhks" });
-        map.put("Bopomofo", new String[] { "bopo" });
-        map.put("Brahmi", new String[] { "brah" });
-        map.put("Braille", new String[] { "brai" });
-        map.put("Buginese", new String[] { "bugi" });
-        map.put("Buhid", new String[] { "buhd" });
-        // Byzantine Music: byzm
-        map.put("Canadian_Aboriginal", new String[] { "cans" });
-        map.put("Carian", new String[] { "cari" });
-        map.put("Caucasian_Albanian", new String[] { "aghb" });
-        map.put("Chakma", new String[] { "cakm" });
-        map.put("Cham", new String[] { "cham" });
-        map.put("Cherokee", new String[] { "cher" });
-        map.put("Common", new String[] { TAG_DEFAULT }); // "Default" in OpenType
-        map.put("Coptic", new String[] { "copt" });
-        map.put("Cuneiform", new String[] { "xsux" }); // "Sumero-Akkadian Cuneiform" in OpenType
-        map.put("Cypriot", new String[] { "cprt" });
-        map.put("Cyrillic", new String[] { "cyrl" });
-        map.put("Deseret", new String[] { "dsrt" });
-        map.put("Devanagari", new String[] { "dev2", "deva" });
-        map.put("Duployan", new String[] { "dupl" });
-        map.put("Egyptian_Hieroglyphs", new String[] { "egyp" });
-        map.put("Elbasan", new String[] { "elba" });
-        map.put("Ethiopic", new String[] { "ethi" });
-        map.put("Georgian", new String[] { "geor" });
-        map.put("Glagolitic", new String[] { "glag" });
-        map.put("Gothic", new String[] { "goth" });
-        map.put("Grantha", new String[] { "gran" });
-        map.put("Greek", new String[] { "grek" });
-        map.put("Gujarati", new String[] { "gjr2", "gujr" });
-        map.put("Gurmukhi", new String[] { "gur2", "guru" });
-        map.put("Han", new String[] { "hani" }); // "CJK Ideographic" in OpenType
-        map.put("Hangul", new String[] { "hang" });
-        // Hangul Jamo: jamo
-        map.put("Hanunoo", new String[] { "hano" });
-        map.put("Hatran", new String[] { "hatr" });
-        map.put("Hebrew", new String[] { "hebr" });
-        map.put("Hiragana", new String[] { "kana" });
-        map.put("Imperial_Aramaic", new String[] { "armi" });
-        map.put(INHERITED, new String[] { INHERITED });
-        map.put("Inscriptional_Pahlavi", new String[] { "phli" });
-        map.put("Inscriptional_Parthian", new String[] { "prti" });
-        map.put("Javanese", new String[] { "java" });
-        map.put("Kaithi", new String[] { "kthi" });
-        map.put("Kannada", new String[] { "knd2", "knda" });
-        map.put("Katakana", new String[] { "kana" });
-        map.put("Kayah_Li", new String[] { "kali" });
-        map.put("Kharoshthi", new String[] { "khar" });
-        map.put("Khmer", new String[] { "khmr" });
-        map.put("Khojki", new String[] { "khoj" });
-        map.put("Khudawadi", new String[] { "sind" });
-        map.put("Lao", new String[] { "lao " });
-        map.put("Latin", new String[] { "latn" });
-        map.put("Lepcha", new String[] { "lepc" });
-        map.put("Limbu", new String[] { "limb" });
-        map.put("Linear_A", new String[] { "lina" });
-        map.put("Linear_B", new String[] { "linb" });
-        map.put("Lisu", new String[] { "lisu" });
-        map.put("Lycian", new String[] { "lyci" });
-        map.put("Lydian", new String[] { "lydi" });
-        map.put("Mahajani", new String[] { "mahj" });
-        map.put("Malayalam", new String[] { "mlm2", "mlym" });
-        map.put("Mandaic", new String[] { "mand" });
-        map.put("Manichaean", new String[] { "mani" });
-        map.put("Marchen", new String[] { "marc" });
-        // Mathematical Alphanumeric Symbols: math
-        map.put("Meetei_Mayek", new String[] { "mtei" });
-        map.put("Mende_Kikakui", new String[] { "mend" });
-        map.put("Meroitic_Cursive", new String[] { "merc" });
-        map.put("Meroitic_Hieroglyphs", new String[] { "mero" });
-        map.put("Miao", new String[] { "plrd" });
-        map.put("Modi", new String[] { "modi" });
-        map.put("Mongolian", new String[] { "mong" });
-        map.put("Mro", new String[] { "mroo" });
-        map.put("Multani", new String[] { "mult" });
-        // Musical Symbols: musc
-        map.put("Myanmar", new String[] { "mym2", "mymr" });
-        map.put("Nabataean", new String[] { "nbat" });
-        map.put("Newa", new String[] { "newa" });
-        map.put("New_Tai_Lue", new String[] { "talu" });
-        map.put("Nko", new String[] { "nko " });
-        map.put("Ogham", new String[] { "ogam" });
-        map.put("Ol_Chiki", new String[] { "olck" });
-        map.put("Old_Italic", new String[] { "ital" });
-        map.put("Old_Hungarian", new String[] { "hung" });
-        map.put("Old_North_Arabian", new String[] { "narb" });
-        map.put("Old_Permic", new String[] { "perm" });
-        map.put("Old_Persian", new String[] { "xpeo" });
-        map.put("Old_South_Arabian", new String[] { "sarb" });
-        map.put("Old_Turkic", new String[] { "orkh" });
-        map.put("Oriya", new String[] { "ory2", "orya" }); // "Odia (formerly Oriya)" in OpenType
-        map.put("Osage", new String[] { "osge" });
-        map.put("Osmanya", new String[] { "osma" });
-        map.put("Pahawh_Hmong", new String[] { "hmng" });
-        map.put("Palmyrene", new String[] { "palm" });
-        map.put("Pau_Cin_Hau", new String[] { "pauc" });
-        map.put("Phags_Pa", new String[] { "phag" });
-        map.put("Phoenician", new String[] { "phnx" });
-        map.put("Psalter_Pahlavi", new String[] { "phlp" });
-        map.put("Rejang", new String[] { "rjng" });
-        map.put("Runic", new String[] { "runr" });
-        map.put("Samaritan", new String[] { "samr" });
-        map.put("Saurashtra", new String[] { "saur" });
-        map.put("Sharada", new String[] { "shrd" });
-        map.put("Shavian", new String[] { "shaw" });
-        map.put("Siddham", new String[] { "sidd" });
-        map.put("SignWriting", new String[] { "sgnw" });
-        map.put("Sinhala", new String[] { "sinh" });
-        map.put("Sora_Sompeng", new String[] { "sora" });
-        map.put("Sundanese", new String[] { "sund" });
-        map.put("Syloti_Nagri", new String[] { "sylo" });
-        map.put("Syriac", new String[] { "syrc" });
-        map.put("Tagalog", new String[] { "tglg" });
-        map.put("Tagbanwa", new String[] { "tagb" });
-        map.put("Tai_Le", new String[] { "tale" });
-        map.put("Tai_Tham", new String[] { "lana" });
-        map.put("Tai_Viet", new String[] { "tavt" });
-        map.put("Takri", new String[] { "takr" });
-        map.put("Tamil", new String[] { "tml2", "taml" });
-        map.put("Tangut", new String[] { "tang" });
-        map.put("Telugu", new String[] { "tel2", "telu" });
-        map.put("Thaana", new String[] { "thaa" });
-        map.put("Thai", new String[] { "thai" });
-        map.put("Tibetan", new String[] { "tibt" });
-        map.put("Tifinagh", new String[] { "tfng" });
-        map.put("Tirhuta", new String[] { "tirh" });
-        map.put("Ugaritic", new String[] { "ugar" });
-        map.put(UNKNOWN, new String[] { TAG_DEFAULT });
-        map.put("Vai", new String[] { "vai " });
-        map.put("Warang_Citi", new String[] { "wara" });
-        map.put("Yi", new String[] { "yi  " });
-        UNICODE_SCRIPT_TO_OPENTYPE_TAG_MAP = map;
+        Object[][] table = 
+        {
+            {"Adlam", new String[] { "adlm" }},
+            {"Ahom", new String[] { "ahom" }},
+            {"Anatolian_Hieroglyphs", new String[] { "hluw" }},
+            {"Arabic", new String[] { "arab" }},
+            {"Armenian", new String[] { "armn" }},
+            {"Avestan", new String[] { "avst" }},
+            {"Balinese", new String[] { "bali" }},
+            {"Bamum", new String[] { "bamu" }},
+            {"Bassa_Vah", new String[] { "bass" }},
+            {"Batak", new String[] { "batk" }},
+            {"Bengali", new String[] { "bng2", "beng" }},
+            {"Bhaiksuki", new String[] { "bhks" }},
+            {"Bopomofo", new String[] { "bopo" }},
+            {"Brahmi", new String[] { "brah" }},
+            {"Braille", new String[] { "brai" }},
+            {"Buginese", new String[] { "bugi" }},
+            {"Buhid", new String[] { "buhd" }},
+            // Byzantine Music: byzm
+            {"Canadian_Aboriginal", new String[] { "cans" }},
+            {"Carian", new String[] { "cari" }},
+            {"Caucasian_Albanian", new String[] { "aghb" }},
+            {"Chakma", new String[] { "cakm" }},
+            {"Cham", new String[] { "cham" }},
+            {"Cherokee", new String[] { "cher" }},
+            {"Common", new String[] { TAG_DEFAULT }}, // "Default" in OpenType
+            {"Coptic", new String[] { "copt" }},
+            {"Cuneiform", new String[] { "xsux" }}, // "Sumero-Akkadian Cuneiform" in OpenType
+            {"Cypriot", new String[] { "cprt" }},
+            {"Cyrillic", new String[] { "cyrl" }},
+            {"Deseret", new String[] { "dsrt" }},
+            {"Devanagari", new String[] { "dev2", "deva" }},
+            {"Duployan", new String[] { "dupl" }},
+            {"Egyptian_Hieroglyphs", new String[] { "egyp" }},
+            {"Elbasan", new String[] { "elba" }},
+            {"Ethiopic", new String[] { "ethi" }},
+            {"Georgian", new String[] { "geor" }},
+            {"Glagolitic", new String[] { "glag" }},
+            {"Gothic", new String[] { "goth" }},
+            {"Grantha", new String[] { "gran" }},
+            {"Greek", new String[] { "grek" }},
+            {"Gujarati", new String[] { "gjr2", "gujr" }},
+            {"Gurmukhi", new String[] { "gur2", "guru" }},
+            {"Han", new String[] { "hani" }}, // "CJK Ideographic" in OpenType
+            {"Hangul", new String[] { "hang" }},
+            // Hangul Jamo: jamo
+            {"Hanunoo", new String[] { "hano" }},
+            {"Hatran", new String[] { "hatr" }},
+            {"Hebrew", new String[] { "hebr" }},
+            {"Hiragana", new String[] { "kana" }},
+            {"Imperial_Aramaic", new String[] { "armi" }},
+            {INHERITED, new String[] { INHERITED }},
+            {"Inscriptional_Pahlavi", new String[] { "phli" }},
+            {"Inscriptional_Parthian", new String[] { "prti" }},
+            {"Javanese", new String[] { "java" }},
+            {"Kaithi", new String[] { "kthi" }},
+            {"Kannada", new String[] { "knd2", "knda" }},
+            {"Katakana", new String[] { "kana" }},
+            {"Kayah_Li", new String[] { "kali" }},
+            {"Kharoshthi", new String[] { "khar" }},
+            {"Khmer", new String[] { "khmr" }},
+            {"Khojki", new String[] { "khoj" }},
+            {"Khudawadi", new String[] { "sind" }},
+            {"Lao", new String[] { "lao " }},
+            {"Latin", new String[] { "latn" }},
+            {"Lepcha", new String[] { "lepc" }},
+            {"Limbu", new String[] { "limb" }},
+            {"Linear_A", new String[] { "lina" }},
+            {"Linear_B", new String[] { "linb" }},
+            {"Lisu", new String[] { "lisu" }},
+            {"Lycian", new String[] { "lyci" }},
+            {"Lydian", new String[] { "lydi" }},
+            {"Mahajani", new String[] { "mahj" }},
+            {"Malayalam", new String[] { "mlm2", "mlym" }},
+            {"Mandaic", new String[] { "mand" }},
+            {"Manichaean", new String[] { "mani" }},
+            {"Marchen", new String[] { "marc" }},
+            // Mathematical Alphanumeric Symbols: math
+            {"Meetei_Mayek", new String[] { "mtei" }},
+            {"Mende_Kikakui", new String[] { "mend" }},
+            {"Meroitic_Cursive", new String[] { "merc" }},
+            {"Meroitic_Hieroglyphs", new String[] { "mero" }},
+            {"Miao", new String[] { "plrd" }},
+            {"Modi", new String[] { "modi" }},
+            {"Mongolian", new String[] { "mong" }},
+            {"Mro", new String[] { "mroo" }},
+            {"Multani", new String[] { "mult" }},
+            // Musical Symbols: musc
+            {"Myanmar", new String[] { "mym2", "mymr" }},
+            {"Nabataean", new String[] { "nbat" }},
+            {"Newa", new String[] { "newa" }},
+            {"New_Tai_Lue", new String[] { "talu" }},
+            {"Nko", new String[] { "nko " }},
+            {"Ogham", new String[] { "ogam" }},
+            {"Ol_Chiki", new String[] { "olck" }},
+            {"Old_Italic", new String[] { "ital" }},
+            {"Old_Hungarian", new String[] { "hung" }},
+            {"Old_North_Arabian", new String[] { "narb" }},
+            {"Old_Permic", new String[] { "perm" }},
+            {"Old_Persian", new String[] { "xpeo" }},
+            {"Old_South_Arabian", new String[] { "sarb" }},
+            {"Old_Turkic", new String[] { "orkh" }},
+            {"Oriya", new String[] { "ory2", "orya" }}, // "Odia (formerly Oriya)" in OpenType
+            {"Osage", new String[] { "osge" }},
+            {"Osmanya", new String[] { "osma" }},
+            {"Pahawh_Hmong", new String[] { "hmng" }},
+            {"Palmyrene", new String[] { "palm" }},
+            {"Pau_Cin_Hau", new String[] { "pauc" }},
+            {"Phags_Pa", new String[] { "phag" }},
+            {"Phoenician", new String[] { "phnx" }},
+            {"Psalter_Pahlavi", new String[] { "phlp" }},
+            {"Rejang", new String[] { "rjng" }},
+            {"Runic", new String[] { "runr" }},
+            {"Samaritan", new String[] { "samr" }},
+            {"Saurashtra", new String[] { "saur" }},
+            {"Sharada", new String[] { "shrd" }},
+            {"Shavian", new String[] { "shaw" }},
+            {"Siddham", new String[] { "sidd" }},
+            {"SignWriting", new String[] { "sgnw" }},
+            {"Sinhala", new String[] { "sinh" }},
+            {"Sora_Sompeng", new String[] { "sora" }},
+            {"Sundanese", new String[] { "sund" }},
+            {"Syloti_Nagri", new String[] { "sylo" }},
+            {"Syriac", new String[] { "syrc" }},
+            {"Tagalog", new String[] { "tglg" }},
+            {"Tagbanwa", new String[] { "tagb" }},
+            {"Tai_Le", new String[] { "tale" }},
+            {"Tai_Tham", new String[] { "lana" }},
+            {"Tai_Viet", new String[] { "tavt" }},
+            {"Takri", new String[] { "takr" }},
+            {"Tamil", new String[] { "tml2", "taml" }},
+            {"Tangut", new String[] { "tang" }},
+            {"Telugu", new String[] { "tel2", "telu" }},
+            {"Thaana", new String[] { "thaa" }},
+            {"Thai", new String[] { "thai" }},
+            {"Tibetan", new String[] { "tibt" }},
+            {"Tifinagh", new String[] { "tfng" }},
+            {"Tirhuta", new String[] { "tirh" }},
+            {"Ugaritic", new String[] { "ugar" }},
+            {UNKNOWN, new String[] { TAG_DEFAULT }},
+            {"Vai", new String[] { "vai " }},
+            {"Warang_Citi", new String[] { "wara" }},
+            {"Yi", new String[] { "yi  " }}
+        };
+        UNICODE_SCRIPT_TO_OPENTYPE_TAG_MAP = new HashMap<>(table.length);
+        for (Object obj : table)
+        {
+            Object[] array = (Object[]) obj;
+            UNICODE_SCRIPT_TO_OPENTYPE_TAG_MAP.put((String) array[0], (String[]) array[1]);
+        }
     }
 
     private static int[] unicodeRangeStarts;