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