Author: tilman
Date: Tue Jun 25 12:25:51 2024
New Revision: 1918588

URL: http://svn.apache.org/viewvc?rev=1918588&view=rev
Log:
PDFBOX-5660: refactor for future PR by Mykola Bohdiuk

Modified:
    
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java

Modified: 
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java?rev=1918588&r1=1918587&r2=1918588&view=diff
==============================================================================
--- 
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java
 (original)
+++ 
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java
 Tue Jun 25 12:25:51 2024
@@ -81,41 +81,21 @@ public class NamingTable extends TTFTabl
             }
             
             data.seek(getOffset() + 
(2*3L)+numberOfNameRecords*2*6+nr.getStringOffset());
-            int platform = nr.getPlatformId();
-            int encoding = nr.getPlatformEncodingId();
-            Charset charset = Charsets.ISO_8859_1;
-            if (platform == NameRecord.PLATFORM_WINDOWS && (encoding == 
NameRecord.ENCODING_WINDOWS_SYMBOL || encoding == 
NameRecord.ENCODING_WINDOWS_UNICODE_BMP))
-            {
-                charset = Charsets.UTF_16;
-            }
-            else if (platform == NameRecord.PLATFORM_UNICODE)
-            {
-                charset = Charsets.UTF_16;
-            }
-            else if (platform == NameRecord.PLATFORM_ISO)
-            {
-                switch (encoding)
-                {
-                    case 0:
-                        charset = Charsets.US_ASCII;
-                        break;
-                    case 1:
-                        //not sure is this is correct??
-                        charset = Charsets.ISO_10646;
-                        break;
-                    case 2:
-                        charset = Charsets.ISO_8859_1;
-                        break;
-                    default:
-                        break;
-                }
-            }
+            Charset charset = getCharset(nr);
             String string = data.readString(nr.getStringLength(), charset);
             nr.setString(string);
         }
 
-        // build multi-dimensional lookup table
         lookupTable = new HashMap<Integer, Map<Integer, Map<Integer, 
Map<Integer, String>>>>(nameRecords.size());
+        fillLookupTable();
+        readInterestingStrings();
+
+        initialized = true;
+    }
+
+    private void fillLookupTable()
+    {
+        // build multi-dimensional lookup table
         for (NameRecord nr : nameRecords)
         {
             // name id
@@ -142,29 +122,63 @@ public class NamingTable extends TTFTabl
             // language id / string
             languageLookup.put(nr.getLanguageId(), nr.getString());
         }
+    }
+
+    private Charset getCharset(NameRecord nr)
+    {
+        int platform = nr.getPlatformId();
+        int encoding = nr.getPlatformEncodingId();
+        Charset charset = Charsets.ISO_8859_1;
+        if (platform == NameRecord.PLATFORM_WINDOWS && (encoding == 
NameRecord.ENCODING_WINDOWS_SYMBOL || encoding == 
NameRecord.ENCODING_WINDOWS_UNICODE_BMP))
+        {
+            charset = Charsets.UTF_16;
+        }
+        else if (platform == NameRecord.PLATFORM_UNICODE)
+        {
+            charset = Charsets.UTF_16;
+        }
+        else if (platform == NameRecord.PLATFORM_ISO)
+        {
+            switch (encoding)
+            {
+                case 0:
+                    charset = Charsets.US_ASCII;
+                    break;
+                case 1:
+                    //not sure is this is correct??
+                    charset = Charsets.ISO_10646;
+                    break;
+                case 2:
+                    charset = Charsets.ISO_8859_1;
+                    break;
+                default:
+                    break;
+            }
+        }
+        return charset;
+    }
 
-        // extract strings of interest
+    private void readInterestingStrings()
+    {
         fontFamily = getEnglishName(NameRecord.NAME_FONT_FAMILY_NAME);
         fontSubFamily = getEnglishName(NameRecord.NAME_FONT_SUB_FAMILY_NAME);
 
         // extract PostScript name, only these two formats are valid
         psName = getName(NameRecord.NAME_POSTSCRIPT_NAME,
-                         NameRecord.PLATFORM_MACINTOSH,
-                         NameRecord.ENCODING_MACINTOSH_ROMAN,
-                         NameRecord.LANGUAGE_MACINTOSH_ENGLISH);
+                NameRecord.PLATFORM_MACINTOSH,
+                NameRecord.ENCODING_MACINTOSH_ROMAN,
+                NameRecord.LANGUAGE_MACINTOSH_ENGLISH);
         if (psName == null)
         {
             psName = getName(NameRecord.NAME_POSTSCRIPT_NAME,
-                             NameRecord.PLATFORM_WINDOWS,
-                             NameRecord.ENCODING_WINDOWS_UNICODE_BMP,
-                             NameRecord.LANGUAGE_WINDOWS_EN_US);
+                    NameRecord.PLATFORM_WINDOWS,
+                    NameRecord.ENCODING_WINDOWS_UNICODE_BMP,
+                    NameRecord.LANGUAGE_WINDOWS_EN_US);
         }
         if (psName != null)
         {
             psName = psName.trim();
         }
-
-        initialized = true;
     }
 
     /**
@@ -205,7 +219,7 @@ public class NamingTable extends TTFTabl
     }
 
     /**
-     * Returns a name from the table, or null it it does not exist.
+     * Returns a name from the table, or null if it does not exist.
      *
      * @param nameId Name ID from NameRecord constants.
      * @param platformId Platform ID from NameRecord constants.


Reply via email to