You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2021/05/24 12:43:55 UTC

svn commit: r1890159 - in /pdfbox/trunk/fontbox/src: main/java/org/apache/fontbox/ttf/ test/java/org/apache/fontbox/ttf/

Author: lehmi
Date: Mon May 24 12:43:54 2021
New Revision: 1890159

URL: http://svn.apache.org/viewvc?rev=1890159&view=rev
Log:
PDFBOX-4892: sonar fix, set final class members to private

Added:
    pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/WGL4NamesTest.java   (with props)
Modified:
    pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/PostScriptTable.java
    pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java
    pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/WGL4Names.java

Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/PostScriptTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/PostScriptTable.java?rev=1890159&r1=1890158&r2=1890159&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/PostScriptTable.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/PostScriptTable.java Mon May 24 12:43:54 2021
@@ -71,11 +71,8 @@ public class PostScriptTable extends TTF
 
         if (Float.compare(formatType, 1.0f) == 0)
         {
-            /*
-             * This TrueType font file contains exactly the 258 glyphs in the standard Macintosh TrueType.
-             */
-            glyphNames = new String[WGL4Names.NUMBER_OF_MAC_GLYPHS];
-            System.arraycopy(WGL4Names.MAC_GLYPH_NAMES, 0, glyphNames, 0, WGL4Names.NUMBER_OF_MAC_GLYPHS);
+            // This TrueType font file contains exactly the 258 glyphs in the standard Macintosh TrueType.
+            glyphNames = WGL4Names.getAllNames();
         }
         else if (Float.compare(formatType, 2.0f) == 0)
         {
@@ -123,7 +120,7 @@ public class PostScriptTable extends TTF
                 int index = glyphNameIndex[i];
                 if (index >= 0 && index < WGL4Names.NUMBER_OF_MAC_GLYPHS)
                 {
-                    glyphNames[i] = WGL4Names.MAC_GLYPH_NAMES[index];
+                    glyphNames[i] = WGL4Names.getGlyphName(index);
                 }
                 else if (index >= WGL4Names.NUMBER_OF_MAC_GLYPHS && index <= 32767 && nameArray != null)
                 {
@@ -151,7 +148,7 @@ public class PostScriptTable extends TTF
                 int index = glyphNameIndex[i];
                 if (index >= 0 && index < WGL4Names.NUMBER_OF_MAC_GLYPHS)
                 {
-                    String name = WGL4Names.MAC_GLYPH_NAMES[index];
+                    String name = WGL4Names.getGlyphName(index);
                     if (name != null)
                     {
                         glyphNames[i] = name;

Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java?rev=1890159&r1=1890158&r2=1890159&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java Mon May 24 12:43:54 2021
@@ -854,7 +854,7 @@ public final class TTFSubsetter
         for (int gid : glyphIds)
         {
             String name = post.getName(gid);
-            Integer macId = WGL4Names.MAC_GLYPH_NAMES_INDICES.get(name);
+            Integer macId = WGL4Names.getGlyphIndex(name);
             if (macId != null)
             {
                 // the name is implicit, as it's from MacRoman

Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/WGL4Names.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/WGL4Names.java?rev=1890159&r1=1890158&r2=1890159&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/WGL4Names.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/WGL4Names.java Mon May 24 12:43:54 2021
@@ -32,7 +32,7 @@ public final class WGL4Names
     /**
      * The 258 standard mac glyph names a used in 'post' format 1 and 2.
      */
-    public static final String[] MAC_GLYPH_NAMES = new String[]
+    private static final String[] MAC_GLYPH_NAMES = new String[]
     {
         ".notdef",".null", "nonmarkingreturn", "space", "exclam", "quotedbl",
         "numbersign", "dollar", "percent", "ampersand", "quotesingle",
@@ -81,7 +81,7 @@ public final class WGL4Names
     /**
      * The indices of the standard mac glyph names.
      */
-    public static final Map<String,Integer> MAC_GLYPH_NAMES_INDICES;
+    private static final Map<String, Integer> MAC_GLYPH_NAMES_INDICES;
 
     static
     {
@@ -95,4 +95,38 @@ public final class WGL4Names
     private WGL4Names()
     {
     }
+
+    /**
+     * Returns the index of the glyph with the given name.
+     * 
+     * @param name the name of the glyph
+     * @return the index of the given glyph name or null for an invalid glyph name
+     */
+    public static Integer getGlyphIndex(String name)
+    {
+        return MAC_GLYPH_NAMES_INDICES.get(name);
+    }
+
+    /**
+     * Returns the name of the glyph at the given index.
+     * 
+     * @param index the index of the glyph
+     * @return the name of the glyph at the given index or null fo an invalid glyph index
+     */
+    public static String getGlyphName(int index)
+    {
+        return index >= 0 && index < NUMBER_OF_MAC_GLYPHS ? MAC_GLYPH_NAMES[index] : null;
+    }
+
+    /**
+     * Returns a new array with all glyph names.
+     * 
+     * @return the array with all glyph names
+     */
+    public static String[] getAllNames()
+    {
+        String[] glyphNames = new String[NUMBER_OF_MAC_GLYPHS];
+        System.arraycopy(MAC_GLYPH_NAMES, 0, glyphNames, 0, NUMBER_OF_MAC_GLYPHS);
+        return glyphNames;
+    }
 }

Added: pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/WGL4NamesTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/WGL4NamesTest.java?rev=1890159&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/WGL4NamesTest.java (added)
+++ pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/WGL4NamesTest.java Mon May 24 12:43:54 2021
@@ -0,0 +1,43 @@
+package org.apache.fontbox.ttf;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.junit.jupiter.api.Test;
+
+public class WGL4NamesTest
+{
+
+    @Test
+    void testAllNames()
+    {
+        String[] allNames = WGL4Names.getAllNames();
+        assertNotNull(allNames);
+        assertEquals(WGL4Names.NUMBER_OF_MAC_GLYPHS, allNames.length);
+    }
+
+    @Test
+    void testGetGlyphName()
+    {
+        assertEquals(".notdef", WGL4Names.getGlyphName(0));
+        assertEquals("equal", WGL4Names.getGlyphName(32));
+        assertEquals("h", WGL4Names.getGlyphName(75));
+        assertEquals("Aacute", WGL4Names.getGlyphName(201));
+        assertEquals("Ocircumflex", WGL4Names.getGlyphName(209));
+        assertEquals("ccaron", WGL4Names.getGlyphName(256));
+        assertNull(WGL4Names.getGlyphName(WGL4Names.NUMBER_OF_MAC_GLYPHS + 1));
+    }
+
+    @Test
+    void testGlyphIndices()
+    {
+        assertEquals(0, WGL4Names.getGlyphIndex(".notdef"));
+        assertEquals(32, WGL4Names.getGlyphIndex("equal"));
+        assertEquals(75, WGL4Names.getGlyphIndex("h"));
+        assertEquals(201, WGL4Names.getGlyphIndex("Aacute"));
+        assertEquals(209, WGL4Names.getGlyphIndex("Ocircumflex"));
+        assertEquals(256, WGL4Names.getGlyphIndex("ccaron"));
+        assertNull(WGL4Names.getGlyphIndex("INVALID"));
+    }
+}

Propchange: pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/WGL4NamesTest.java
------------------------------------------------------------------------------
    svn:eol-style = native