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 2020/05/07 15:55:42 UTC

svn commit: r1877478 - /pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java

Author: tilman
Date: Thu May  7 15:55:41 2020
New Revision: 1877478

URL: http://svn.apache.org/viewvc?rev=1877478&view=rev
Log:
PDFBOX-4071: remove super(), simplify code, rename variable to avoid having same name as a field, DRY refactoring

Modified:
    pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java

Modified: pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java?rev=1877478&r1=1877477&r2=1877478&view=diff
==============================================================================
--- pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java (original)
+++ pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java Thu May  7 15:55:41 2020
@@ -53,7 +53,6 @@ public abstract class PDSimpleFont exten
      */
     PDSimpleFont()
     {
-        super();
     }
 
     /**
@@ -62,16 +61,7 @@ public abstract class PDSimpleFont exten
     PDSimpleFont(String baseFont)
     {
         super(baseFont);
-
-        // assign the glyph list based on the font
-        if ("ZapfDingbats".equals(baseFont))
-        {
-            glyphList = GlyphList.getZapfDingbats();
-        }
-        else
-        {
-            glyphList = GlyphList.getAdobeGlyphList();
-        }
+        assignGlyphList(baseFont);
     }
 
     /**
@@ -92,61 +82,47 @@ public abstract class PDSimpleFont exten
      */
     protected void readEncoding() throws IOException
     {
-        COSBase encoding = dict.getDictionaryObject(COSName.ENCODING);
-        if (encoding != null)
+        COSBase encodingBase = dict.getDictionaryObject(COSName.ENCODING);
+        if (encodingBase instanceof COSName)
         {
-            if (encoding instanceof COSName)
+            COSName encodingName = (COSName) encodingBase;
+            this.encoding = Encoding.getInstance(encodingName);
+            if (this.encoding == null)
             {
-                COSName encodingName = (COSName)encoding;
-                this.encoding = Encoding.getInstance(encodingName);
-                if (this.encoding == null)
-                {
-                    LOG.warn("Unknown encoding: " + encodingName.getName());
-                    this.encoding = readEncodingFromFont(); // fallback
-                }
+                LOG.warn("Unknown encoding: " + encodingName.getName());
+                this.encoding = readEncodingFromFont(); // fallback
             }
-            else if (encoding instanceof COSDictionary)
+        }
+        else if (encodingBase instanceof COSDictionary)
+        {
+            COSDictionary encodingDict = (COSDictionary) encodingBase;
+            Encoding builtIn = null;
+            Boolean symbolic = getSymbolicFlag();
+
+            COSName baseEncoding = encodingDict.getCOSName(COSName.BASE_ENCODING);
+
+            boolean hasValidBaseEncoding = baseEncoding != null &&
+                                             Encoding.getInstance(baseEncoding) != null;
+
+            if (!hasValidBaseEncoding && Boolean.TRUE.equals(symbolic))
             {
-                COSDictionary encodingDict = (COSDictionary)encoding;
-                Encoding builtIn = null;
-                Boolean symbolic = getSymbolicFlag();
-                boolean isFlaggedAsSymbolic = symbolic != null && symbolic;
-
-                COSName baseEncoding = encodingDict.getCOSName(COSName.BASE_ENCODING);
-                
-                boolean hasValidBaseEncoding = baseEncoding != null &&
-                            Encoding.getInstance(baseEncoding) != null;
-                
-                if (!hasValidBaseEncoding && isFlaggedAsSymbolic)
-                {
-                    builtIn = readEncodingFromFont();
-                }
+                builtIn = readEncodingFromFont();
+            }
 
-                if (symbolic == null)
-                {
-                    symbolic = false;
-                }
-                this.encoding = new DictionaryEncoding(encodingDict, !symbolic, builtIn);
+            if (symbolic == null)
+            {
+                symbolic = false;
             }
+            this.encoding = new DictionaryEncoding(encodingDict, !symbolic, builtIn);
         }
-        else
+        else if (encodingBase == null)
         {
             this.encoding = readEncodingFromFont();
         }
 
         // normalise the standard 14 name, e.g "Symbol,Italic" -> "Symbol"
         String standard14Name = Standard14Fonts.getMappedFontName(getName());
-
-        // assign the glyph list based on the font
-        if ("ZapfDingbats".equals(standard14Name))
-        {
-            glyphList = GlyphList.getZapfDingbats();
-        }
-        else
-        {
-            // StandardEncoding and Symbol are in the AGL
-            glyphList = GlyphList.getAdobeGlyphList();
-        }
+        assignGlyphList(standard14Name);
     }
     
     /**
@@ -437,4 +413,17 @@ public abstract class PDSimpleFont exten
         }
         return false;
     }
+
+    private void assignGlyphList(String baseFont)
+    {
+        // assign the glyph list based on the font
+        if ("ZapfDingbats".equals(baseFont))
+        {
+            glyphList = GlyphList.getZapfDingbats();
+        }
+        else
+        {
+            glyphList = GlyphList.getAdobeGlyphList();
+        }
+    }
 }