Author: lehmi
Date: Sun Jul 26 15:10:31 2026
New Revision: 1936599

Log:
PDFBOX-6226: cache byte representation of the name of an operator so that it 
doesn't have to be converted every time it is written to a pdf.

Added:
   
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdfwriter/OperatorNameTest.java
   (contents, props changed)
Modified:
   
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/OperatorName.java
   
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/ContentStreamWriter.java
   
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDAbstractContentStream.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/OperatorName.java
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/OperatorName.java
        Sun Jul 26 12:45:03 2026        (r1936598)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/OperatorName.java
        Sun Jul 26 15:10:31 2026        (r1936599)
@@ -16,9 +16,12 @@
  */
 package org.apache.pdfbox.contentstream.operator;
 
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
 public final class OperatorName
 {
-
     // non stroking color
     public static final String NON_STROKING_COLOR = "sc";
     public static final String NON_STROKING_COLOR_N = "scn";
@@ -108,6 +111,166 @@ public final class OperatorName
     public static final String BEGIN_COMPATIBILITY_SECTION = "BX";
     public static final String END_COMPATIBILITY_SECTION = "EX";
 
+    private static final Map<String, byte[]> nameAsBytes = new 
ConcurrentHashMap<>();
+
+    static
+    {
+        // non stroking color
+        nameAsBytes.put(NON_STROKING_COLOR, //
+                NON_STROKING_COLOR.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(NON_STROKING_COLOR_N, //
+                NON_STROKING_COLOR_N.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(NON_STROKING_RGB, //
+                NON_STROKING_RGB.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(NON_STROKING_GRAY, //
+                NON_STROKING_GRAY.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(NON_STROKING_CMYK, //
+                NON_STROKING_CMYK.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(NON_STROKING_COLORSPACE, //
+                NON_STROKING_COLORSPACE.getBytes(StandardCharsets.US_ASCII));
+        // stroking color
+        nameAsBytes.put(STROKING_COLOR, //
+                STROKING_COLOR.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(STROKING_COLOR_N, //
+                STROKING_COLOR_N.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(STROKING_COLOR_RGB, //
+                STROKING_COLOR_RGB.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(STROKING_COLOR_GRAY, //
+                STROKING_COLOR_GRAY.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(STROKING_COLOR_CMYK, //
+                STROKING_COLOR_CMYK.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(STROKING_COLORSPACE, //
+                STROKING_COLORSPACE.getBytes(StandardCharsets.US_ASCII));
+        // marked content
+        nameAsBytes.put(BEGIN_MARKED_CONTENT_SEQ, //
+                BEGIN_MARKED_CONTENT_SEQ.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(BEGIN_MARKED_CONTENT, //
+                BEGIN_MARKED_CONTENT.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(END_MARKED_CONTENT, //
+                END_MARKED_CONTENT.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(MARKED_CONTENT_POINT_WITH_PROPS, //
+                
MARKED_CONTENT_POINT_WITH_PROPS.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(MARKED_CONTENT_POINT, //
+                MARKED_CONTENT_POINT.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(DRAW_OBJECT, //
+                DRAW_OBJECT.getBytes(StandardCharsets.US_ASCII));
+        // state
+        nameAsBytes.put(CONCAT, //
+                CONCAT.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(RESTORE, //
+                RESTORE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SAVE, //
+                SAVE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_FLATNESS, //
+                SET_FLATNESS.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_GRAPHICS_STATE_PARAMS, //
+                SET_GRAPHICS_STATE_PARAMS.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_LINE_CAPSTYLE, //
+                SET_LINE_CAPSTYLE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_LINE_DASHPATTERN, //
+                SET_LINE_DASHPATTERN.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_LINE_JOINSTYLE, //
+                SET_LINE_JOINSTYLE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_LINE_MITERLIMIT, //
+                SET_LINE_MITERLIMIT.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_LINE_WIDTH, //
+                SET_LINE_WIDTH.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_MATRIX, //
+                SET_MATRIX.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_RENDERINGINTENT, //
+                SET_RENDERINGINTENT.getBytes(StandardCharsets.US_ASCII));
+        // graphics
+        nameAsBytes.put(APPEND_RECT, //
+                APPEND_RECT.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(BEGIN_INLINE_IMAGE, //
+                BEGIN_INLINE_IMAGE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(BEGIN_INLINE_IMAGE_DATA, //
+                BEGIN_INLINE_IMAGE_DATA.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(END_INLINE_IMAGE, //
+                END_INLINE_IMAGE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(CLIP_EVEN_ODD, //
+                CLIP_EVEN_ODD.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(CLIP_NON_ZERO, //
+                CLIP_NON_ZERO.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(CLOSE_AND_STROKE, //
+                CLOSE_AND_STROKE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(CLOSE_FILL_EVEN_ODD_AND_STROKE, //
+                
CLOSE_FILL_EVEN_ODD_AND_STROKE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(CLOSE_FILL_NON_ZERO_AND_STROKE, //
+                
CLOSE_FILL_NON_ZERO_AND_STROKE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(CLOSE_PATH, //
+                CLOSE_PATH.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(CURVE_TO, //
+                CURVE_TO.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(CURVE_TO_REPLICATE_FINAL_POINT, //
+                
CURVE_TO_REPLICATE_FINAL_POINT.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(CURVE_TO_REPLICATE_INITIAL_POINT, //
+                
CURVE_TO_REPLICATE_INITIAL_POINT.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(ENDPATH, //
+                ENDPATH.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(FILL_EVEN_ODD_AND_STROKE, //
+                FILL_EVEN_ODD_AND_STROKE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(FILL_EVEN_ODD, //
+                FILL_EVEN_ODD.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(FILL_NON_ZERO_AND_STROKE, //
+                FILL_NON_ZERO_AND_STROKE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(FILL_NON_ZERO, //
+                FILL_NON_ZERO.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(LEGACY_FILL_NON_ZERO, //
+                LEGACY_FILL_NON_ZERO.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(LINE_TO, //
+                LINE_TO.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(MOVE_TO, //
+                MOVE_TO.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SHADING_FILL, //
+                SHADING_FILL.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(STROKE_PATH, //
+                STROKE_PATH.getBytes(StandardCharsets.US_ASCII));
+        // text
+        nameAsBytes.put(BEGIN_TEXT, //
+                BEGIN_TEXT.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(END_TEXT, //
+                END_TEXT.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(MOVE_TEXT, //
+                MOVE_TEXT.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(MOVE_TEXT_SET_LEADING, //
+                MOVE_TEXT_SET_LEADING.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(NEXT_LINE, //
+                NEXT_LINE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_CHAR_SPACING, //
+                SET_CHAR_SPACING.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_FONT_AND_SIZE, //
+                SET_FONT_AND_SIZE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_TEXT_HORIZONTAL_SCALING, //
+                
SET_TEXT_HORIZONTAL_SCALING.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_TEXT_LEADING, //
+                SET_TEXT_LEADING.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_TEXT_RENDERINGMODE, //
+                SET_TEXT_RENDERINGMODE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_TEXT_RISE, //
+                SET_TEXT_RISE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SET_WORD_SPACING, //
+                SET_WORD_SPACING.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SHOW_TEXT, //
+                SHOW_TEXT.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SHOW_TEXT_ADJUSTED, //
+                SHOW_TEXT_ADJUSTED.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SHOW_TEXT_LINE, //
+                SHOW_TEXT_LINE.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(SHOW_TEXT_LINE_AND_SPACE, //
+                SHOW_TEXT_LINE_AND_SPACE.getBytes(StandardCharsets.US_ASCII));
+        // type3 font
+        nameAsBytes.put(TYPE3_D0, //
+                TYPE3_D0.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(TYPE3_D1, //
+                TYPE3_D1.getBytes(StandardCharsets.US_ASCII));
+        // compatibility section
+        nameAsBytes.put(BEGIN_COMPATIBILITY_SECTION, //
+                
BEGIN_COMPATIBILITY_SECTION.getBytes(StandardCharsets.US_ASCII));
+        nameAsBytes.put(END_COMPATIBILITY_SECTION, //
+                END_COMPATIBILITY_SECTION.getBytes(StandardCharsets.US_ASCII));
+    }
+
     /**
      * private constructor
      */
@@ -115,4 +278,19 @@ public final class OperatorName
     {
     }
 
+    /**
+     * Returns the ASCII representation of the given operator name as byte 
array.
+     * 
+     * @param operatorName the name of the operator.
+     * @return the ASCII representation of the operator name as byte array.
+     */
+    public static byte[] getNameAsBytes(String operatorName)
+    {
+        byte[] stringBytes = nameAsBytes.get(operatorName);
+        if (stringBytes == null)
+        {
+            throw new IllegalArgumentException("unknown operator " + 
operatorName);
+        }
+        return stringBytes;
+    }
 }

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/ContentStreamWriter.java
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/ContentStreamWriter.java
      Sun Jul 26 12:45:03 2026        (r1936598)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/ContentStreamWriter.java
      Sun Jul 26 15:10:31 2026        (r1936599)
@@ -132,7 +132,7 @@ public class ContentStreamWriter
     {
         if (op.getName().equals(OperatorName.BEGIN_INLINE_IMAGE))
         {
-            
output.write(OperatorName.BEGIN_INLINE_IMAGE.getBytes(StandardCharsets.ISO_8859_1));
+            
output.write(OperatorName.getNameAsBytes(OperatorName.BEGIN_INLINE_IMAGE));
             output.write(EOL);
             COSDictionary dic = op.getImageParameters();
             for (COSName key : dic.keySet())
@@ -143,16 +143,16 @@ public class ContentStreamWriter
                 writeObject(value);
                 output.write(EOL);
             }
-            
output.write(OperatorName.BEGIN_INLINE_IMAGE_DATA.getBytes(StandardCharsets.ISO_8859_1));
+            
output.write(OperatorName.getNameAsBytes(OperatorName.BEGIN_INLINE_IMAGE_DATA));
             output.write(EOL);
             output.write(op.getImageData());
             output.write(EOL);
-            
output.write(OperatorName.END_INLINE_IMAGE.getBytes(StandardCharsets.ISO_8859_1));
+            
output.write(OperatorName.getNameAsBytes(OperatorName.END_INLINE_IMAGE));
             output.write(EOL);
         }
         else
         {
-            output.write(op.getName().getBytes(StandardCharsets.ISO_8859_1));
+            output.write(OperatorName.getNameAsBytes(op.getName()));
             output.write(EOL);
         }
     }

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDAbstractContentStream.java
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDAbstractContentStream.java
    Sun Jul 26 12:45:03 2026        (r1936598)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDAbstractContentStream.java
    Sun Jul 26 15:10:31 2026        (r1936599)
@@ -78,6 +78,10 @@ abstract class PDAbstractContentStream i
 {
     private static final Logger LOG = 
LogManager.getLogger(PDAbstractContentStream.class);
 
+    private static final byte[] ASCII_SPACE = new byte[] { 0x20 };
+    private static final byte[] ASCII_LEFT_SQUARE_BRACKET = new byte[] { 0x5B 
};
+    private static final byte[] ASCII_RIGHT_SQUARE_BRACKET_SPACE = new byte[] 
{ 0x5D, 0x20 };
+
     protected final PDDocument document; // may be null
 
     protected final OutputStream outputStream;
@@ -264,7 +268,7 @@ abstract class PDAbstractContentStream i
             throw new IllegalStateException("Must call setFont() before 
showTextWithPositioning()");
         }
 
-        write("[");
+        writeBytes(ASCII_LEFT_SQUARE_BRACKET);
         for (Object obj : textWithPositioningArray)
         {
             if (obj instanceof String)
@@ -280,7 +284,7 @@ abstract class PDAbstractContentStream i
                 throw new IllegalArgumentException("Argument must consist of 
array of Float and String types");
             }
         }
-        write("] ");
+        writeBytes(ASCII_RIGHT_SQUARE_BRACKET_SPACE);
         writeOperator(OperatorName.SHOW_TEXT_ADJUSTED);
     }
 
@@ -295,8 +299,7 @@ abstract class PDAbstractContentStream i
     @Override
     public void showGlyphsWithPositioning(GlyphsAndPositions 
glyphsAndPositions) throws IOException
     {
-        write("[");
-
+        writeBytes(ASCII_LEFT_SQUARE_BRACKET);
         for (Object obj : glyphsAndPositions.toArray())
         {
             if (obj instanceof GlyphsAndPositions.GlyphSubList)
@@ -317,7 +320,7 @@ abstract class PDAbstractContentStream i
                 throw new IllegalArgumentException("Argument must consist of 
array of Float and GlyphsAndPositions.GlyphSubList types, not " + 
obj.getClass().getName());
             }
         }
-        write("] ");
+        writeBytes(ASCII_RIGHT_SQUARE_BRACKET_SPACE);
         writeOperator(OperatorName.SHOW_TEXT_ADJUSTED);
     }
 
@@ -351,7 +354,7 @@ abstract class PDAbstractContentStream i
         else
         {
             showTextInternal(text);
-            write(" ");
+            writeBytes(ASCII_SPACE);
             writeOperator(OperatorName.SHOW_TEXT);
         }
     }
@@ -367,7 +370,7 @@ abstract class PDAbstractContentStream i
     public void showGlyphCodes(int[] glyphCodes) throws IOException
     {
         writeTextPDType0Font(glyphCodes);
-        write(" ");
+        writeBytes(ASCII_SPACE);
         writeOperator(OperatorName.SHOW_TEXT);
     }
 
@@ -1427,12 +1430,12 @@ abstract class PDAbstractContentStream i
      */
     public void setLineDashPattern(float[] pattern, float phase) throws 
IOException
     {
-        write("[");
+        writeBytes(ASCII_LEFT_SQUARE_BRACKET);
         for (float value : pattern)
         {
             writeOperand(value);
         }
-        write("] ");
+        writeBytes(ASCII_RIGHT_SQUARE_BRACKET_SPACE);
         writeOperand(phase);
         writeOperator(OperatorName.SET_LINE_DASHPATTERN);
     }
@@ -1630,14 +1633,14 @@ abstract class PDAbstractContentStream i
     }
 
     /**
-     * Writes a string to the content stream as ASCII.
+     * Writes an operator to the content stream as ASCII.
      * 
-     * @param text the text to be added to the content stream followed by a 
newline
+     * @param operatorname the name of the operator to be added to the content 
stream followed by a newline
      * @throws IOException If the underlying stream has a problem being 
written to.
      */
-    protected void writeOperator(String text) throws IOException
+    protected void writeOperator(String operatorname) throws IOException
     {
-        write(text);
+        writeBytes(OperatorName.getNameAsBytes(operatorname));
         writeLine();
     }
 

Added: 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdfwriter/OperatorNameTest.java
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdfwriter/OperatorNameTest.java
 Sun Jul 26 15:10:31 2026        (r1936599)
@@ -0,0 +1,207 @@
+package org.apache.pdfbox.pdfwriter;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+
+import java.nio.charset.StandardCharsets;
+
+import org.apache.pdfbox.contentstream.operator.OperatorName;
+import org.junit.jupiter.api.Test;
+
+class OperatorNameTest
+{
+    @Test
+    void testNameAsByteMappingNonStrokingColor()
+    {
+        
assertArrayEquals(OperatorName.NON_STROKING_COLOR.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.NON_STROKING_COLOR));
+        
assertArrayEquals(OperatorName.NON_STROKING_COLOR_N.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.NON_STROKING_COLOR_N));
+        
assertArrayEquals(OperatorName.NON_STROKING_RGB.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.NON_STROKING_RGB));
+        
assertArrayEquals(OperatorName.NON_STROKING_GRAY.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.NON_STROKING_GRAY));
+        
assertArrayEquals(OperatorName.NON_STROKING_CMYK.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.NON_STROKING_CMYK));
+        
assertArrayEquals(OperatorName.NON_STROKING_COLORSPACE.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.NON_STROKING_COLORSPACE));
+    }
+
+    @Test
+    void testNameAsByteMappingStrokingColor()
+    {
+        
assertArrayEquals(OperatorName.STROKING_COLOR.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.STROKING_COLOR));
+        
assertArrayEquals(OperatorName.STROKING_COLOR_N.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.STROKING_COLOR_N));
+        
assertArrayEquals(OperatorName.STROKING_COLOR_RGB.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.STROKING_COLOR_RGB));
+        
assertArrayEquals(OperatorName.STROKING_COLOR_GRAY.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.STROKING_COLOR_GRAY));
+        
assertArrayEquals(OperatorName.STROKING_COLOR_CMYK.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.STROKING_COLOR_CMYK));
+        
assertArrayEquals(OperatorName.STROKING_COLORSPACE.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.STROKING_COLORSPACE));
+    }
+
+    @Test
+    void testNameAsByteMappingMarkedContent()
+    {
+        
assertArrayEquals(OperatorName.BEGIN_MARKED_CONTENT_SEQ.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.BEGIN_MARKED_CONTENT_SEQ));
+        
assertArrayEquals(OperatorName.BEGIN_MARKED_CONTENT.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.BEGIN_MARKED_CONTENT));
+        
assertArrayEquals(OperatorName.END_MARKED_CONTENT.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.END_MARKED_CONTENT));
+        assertArrayEquals(
+                
OperatorName.MARKED_CONTENT_POINT_WITH_PROPS.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.MARKED_CONTENT_POINT_WITH_PROPS));
+        
assertArrayEquals(OperatorName.MARKED_CONTENT_POINT.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.MARKED_CONTENT_POINT));
+        
assertArrayEquals(OperatorName.DRAW_OBJECT.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.DRAW_OBJECT));
+    }
+
+    @Test
+    void testNameAsByteMappingState()
+    {
+        
assertArrayEquals(OperatorName.CONCAT.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.CONCAT));
+        
assertArrayEquals(OperatorName.RESTORE.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.RESTORE));
+        
assertArrayEquals(OperatorName.SAVE.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SAVE));
+        
assertArrayEquals(OperatorName.SET_FLATNESS.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SET_FLATNESS));
+        assertArrayEquals(
+                
OperatorName.SET_GRAPHICS_STATE_PARAMS.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.SET_GRAPHICS_STATE_PARAMS));
+        
assertArrayEquals(OperatorName.SET_LINE_CAPSTYLE.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SET_LINE_CAPSTYLE));
+        
assertArrayEquals(OperatorName.SET_LINE_DASHPATTERN.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.SET_LINE_DASHPATTERN));
+        
assertArrayEquals(OperatorName.SET_LINE_JOINSTYLE.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SET_LINE_JOINSTYLE));
+        
assertArrayEquals(OperatorName.SET_LINE_MITERLIMIT.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SET_LINE_MITERLIMIT));
+        
assertArrayEquals(OperatorName.SET_LINE_WIDTH.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SET_LINE_WIDTH));
+        
assertArrayEquals(OperatorName.SET_MATRIX.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SET_MATRIX));
+        
assertArrayEquals(OperatorName.SET_RENDERINGINTENT.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SET_RENDERINGINTENT));
+
+    }
+
+    @Test
+    void testNameAsByteGraphics()
+    {
+        
assertArrayEquals(OperatorName.APPEND_RECT.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.APPEND_RECT));
+        
assertArrayEquals(OperatorName.BEGIN_INLINE_IMAGE.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.BEGIN_INLINE_IMAGE));
+        
assertArrayEquals(OperatorName.BEGIN_INLINE_IMAGE_DATA.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.BEGIN_INLINE_IMAGE_DATA));
+        
assertArrayEquals(OperatorName.END_INLINE_IMAGE.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.END_INLINE_IMAGE));
+        
assertArrayEquals(OperatorName.CLIP_EVEN_ODD.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.CLIP_EVEN_ODD));
+        
assertArrayEquals(OperatorName.CLIP_NON_ZERO.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.CLIP_NON_ZERO));
+        
assertArrayEquals(OperatorName.CLOSE_AND_STROKE.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.CLOSE_AND_STROKE));
+        assertArrayEquals(
+                
OperatorName.CLOSE_FILL_EVEN_ODD_AND_STROKE.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.CLOSE_FILL_EVEN_ODD_AND_STROKE));
+        assertArrayEquals(
+                
OperatorName.CLOSE_FILL_NON_ZERO_AND_STROKE.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.CLOSE_FILL_NON_ZERO_AND_STROKE));
+        
assertArrayEquals(OperatorName.CLOSE_PATH.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.CLOSE_PATH));
+        
assertArrayEquals(OperatorName.CURVE_TO.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.CURVE_TO));
+        assertArrayEquals(
+                
OperatorName.CURVE_TO_REPLICATE_FINAL_POINT.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.CURVE_TO_REPLICATE_FINAL_POINT));
+        assertArrayEquals(
+                
OperatorName.CURVE_TO_REPLICATE_INITIAL_POINT.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.CURVE_TO_REPLICATE_INITIAL_POINT));
+        
assertArrayEquals(OperatorName.ENDPATH.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.ENDPATH));
+        
assertArrayEquals(OperatorName.FILL_EVEN_ODD_AND_STROKE.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.FILL_EVEN_ODD_AND_STROKE));
+        
assertArrayEquals(OperatorName.FILL_EVEN_ODD.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.FILL_EVEN_ODD));
+        
assertArrayEquals(OperatorName.FILL_NON_ZERO_AND_STROKE.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.FILL_NON_ZERO_AND_STROKE));
+        
assertArrayEquals(OperatorName.FILL_NON_ZERO.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.FILL_NON_ZERO));
+        
assertArrayEquals(OperatorName.LEGACY_FILL_NON_ZERO.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.LEGACY_FILL_NON_ZERO));
+        
assertArrayEquals(OperatorName.LINE_TO.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.LINE_TO));
+        
assertArrayEquals(OperatorName.MOVE_TO.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.MOVE_TO));
+        
assertArrayEquals(OperatorName.SHADING_FILL.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SHADING_FILL));
+        
assertArrayEquals(OperatorName.STROKE_PATH.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.STROKE_PATH));
+    }
+
+    @Test
+    void testNameAsByteText()
+    {
+        
assertArrayEquals(OperatorName.BEGIN_TEXT.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.BEGIN_TEXT));
+        
assertArrayEquals(OperatorName.END_TEXT.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.END_TEXT));
+        
assertArrayEquals(OperatorName.MOVE_TEXT.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.MOVE_TEXT));
+        
assertArrayEquals(OperatorName.MOVE_TEXT_SET_LEADING.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.MOVE_TEXT_SET_LEADING));
+        
assertArrayEquals(OperatorName.NEXT_LINE.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.NEXT_LINE));
+        
assertArrayEquals(OperatorName.SET_CHAR_SPACING.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SET_CHAR_SPACING));
+        
assertArrayEquals(OperatorName.SET_FONT_AND_SIZE.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SET_FONT_AND_SIZE));
+        assertArrayEquals(
+                
OperatorName.SET_TEXT_HORIZONTAL_SCALING.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.SET_TEXT_HORIZONTAL_SCALING));
+        
assertArrayEquals(OperatorName.SET_TEXT_LEADING.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SET_TEXT_LEADING));
+        
assertArrayEquals(OperatorName.SET_TEXT_RENDERINGMODE.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.SET_TEXT_RENDERINGMODE));
+        
assertArrayEquals(OperatorName.SET_TEXT_RISE.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SET_TEXT_RISE));
+        
assertArrayEquals(OperatorName.SET_WORD_SPACING.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SET_WORD_SPACING));
+        
assertArrayEquals(OperatorName.SHOW_TEXT.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SHOW_TEXT));
+        
assertArrayEquals(OperatorName.SHOW_TEXT_ADJUSTED.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SHOW_TEXT_ADJUSTED));
+        
assertArrayEquals(OperatorName.SHOW_TEXT_LINE.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.SHOW_TEXT_LINE));
+        
assertArrayEquals(OperatorName.SHOW_TEXT_LINE_AND_SPACE.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.SHOW_TEXT_LINE_AND_SPACE));
+    }
+
+    @Test
+    void testNameAsByteType3()
+    {
+        
assertArrayEquals(OperatorName.TYPE3_D0.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.TYPE3_D0));
+        
assertArrayEquals(OperatorName.TYPE3_D1.getBytes(StandardCharsets.US_ASCII),
+                OperatorName.getNameAsBytes(OperatorName.TYPE3_D1));
+    }
+
+    @Test
+    void testNameAsByteCompatibility()
+    {
+        assertArrayEquals(
+                
OperatorName.BEGIN_COMPATIBILITY_SECTION.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.BEGIN_COMPATIBILITY_SECTION));
+        assertArrayEquals(
+                
OperatorName.END_COMPATIBILITY_SECTION.getBytes(StandardCharsets.US_ASCII),
+                
OperatorName.getNameAsBytes(OperatorName.END_COMPATIBILITY_SECTION));
+    }
+}

Reply via email to