This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-imaging.git

commit bed82950e570c4723f8015e1d635e67bf5053a7b
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sat Dec 23 15:18:30 2023 -0500

    Refactor constant
    
    - Make defensive copies of arrays
    - Format tweaks
---
 .../org/apache/commons/imaging/ImageFormats.java   | 29 +++++++++++++++++++---
 .../imaging/formats/pnm/PnmImageParser.java        | 29 ++++++++++++++++------
 2 files changed, 47 insertions(+), 11 deletions(-)

diff --git a/src/main/java/org/apache/commons/imaging/ImageFormats.java 
b/src/main/java/org/apache/commons/imaging/ImageFormats.java
index dbe462ba..6fa3beb0 100644
--- a/src/main/java/org/apache/commons/imaging/ImageFormats.java
+++ b/src/main/java/org/apache/commons/imaging/ImageFormats.java
@@ -17,12 +17,35 @@
 package org.apache.commons.imaging;
 
 /**
- * Enum of known image formats.
+ * Enumerates known image formats.
  */
 public enum ImageFormats implements ImageFormat {
-    UNKNOWN(), BMP("bmp", "dib"), DCX("dcx"), GIF("gif"), ICNS("icns"), 
ICO("ico"), JBIG2(), JPEG("jpg", "jpeg"), PAM("pam"), PSD("psd"), PBM("pbm"),
-    PGM("pgm"), PNM("pnm"), PPM("ppm"), PCX("pcx", "pcc"), PNG("png"), 
RGBE("hdr", "pic"), TGA(), TIFF("tif", "tiff"), WBMP("wbmp"), WEBP("webp"), 
XBM("xbm"),
+
+    // @formatter:off
+    UNKNOWN(),
+    BMP("bmp", "dib"),
+    DCX("dcx"),
+    GIF("gif"),
+    ICNS("icns"),
+    ICO("ico"),
+    JBIG2(),
+    JPEG("jpg", "jpeg"),
+    PAM("pam"),
+    PSD("psd"),
+    PBM("pbm"),
+    PGM("pgm"),
+    PNM("pnm"),
+    PPM("ppm"),
+    PCX("pcx", "pcc"),
+    PNG("png"),
+    RGBE("hdr", "pic"),
+    TGA(),
+    TIFF("tif", "tiff"),
+    WBMP("wbmp"),
+    WEBP("webp"),
+    XBM("xbm"),
     XPM("xpm");
+    // @formatter:on
 
     private final String[] extensions;
 
diff --git 
a/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImageParser.java 
b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImageParser.java
index b40c116e..c3aaa235 100644
--- a/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImageParser.java
@@ -28,6 +28,7 @@ import java.nio.ByteOrder;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.StringTokenizer;
+import java.util.stream.Stream;
 
 import org.apache.commons.imaging.AbstractImageParser;
 import org.apache.commons.imaging.ImageFormat;
@@ -41,10 +42,23 @@ import org.apache.commons.imaging.palette.PaletteFactory;
 
 public class PnmImageParser extends AbstractImageParser<PnmImagingParameters> {
 
+    private static final int DPI = 72;
+    private static final ImageFormat[] IMAGE_FORMATS;
     private static final String DEFAULT_EXTENSION = 
ImageFormats.PNM.getDefaultExtension();
-    private static final String[] ACCEPTED_EXTENSIONS = { 
ImageFormats.PAM.getDefaultExtension(), ImageFormats.PBM.getDefaultExtension(),
-            ImageFormats.PGM.getDefaultExtension(), 
ImageFormats.PNM.getDefaultExtension(), ImageFormats.PPM.getDefaultExtension() 
};
-
+    private static final String[] ACCEPTED_EXTENSIONS;
+
+    static {
+        IMAGE_FORMATS = new ImageFormat[] {
+                // @formatter:off
+                ImageFormats.PAM,
+                ImageFormats.PBM,
+                ImageFormats.PGM,
+                ImageFormats.PNM,
+                ImageFormats.PPM
+                // @formatter:on
+        };
+        ACCEPTED_EXTENSIONS = 
Stream.of(IMAGE_FORMATS).map(ImageFormat::getDefaultExtension).toArray(String[]::new);
+    }
     public PnmImageParser() {
         super(ByteOrder.LITTLE_ENDIAN);
     }
@@ -67,12 +81,12 @@ public class PnmImageParser extends 
AbstractImageParser<PnmImagingParameters> {
 
     @Override
     protected String[] getAcceptedExtensions() {
-        return ACCEPTED_EXTENSIONS;
+        return ACCEPTED_EXTENSIONS.clone();
     }
 
     @Override
     protected ImageFormat[] getAcceptedTypes() {
-        return new ImageFormat[] { ImageFormats.PBM, ImageFormats.PGM, 
ImageFormats.PPM, ImageFormats.PNM, ImageFormats.PAM };
+        return IMAGE_FORMATS.clone();
     }
 
     @Override
@@ -121,9 +135,9 @@ public class PnmImageParser extends 
AbstractImageParser<PnmImagingParameters> {
 
         // boolean progressive = (fPNGChunkIHDR.InterlaceMethod != 0);
         //
-        final int physicalWidthDpi = 72;
+        final int physicalWidthDpi = DPI;
         final float physicalWidthInch = (float) ((double) info.width / 
(double) physicalWidthDpi);
-        final int physicalHeightDpi = 72;
+        final int physicalHeightDpi = DPI;
         final float physicalHeightInch = (float) ((double) info.height / 
(double) physicalHeightDpi);
 
         final String formatDetails = info.getImageTypeDescription();
@@ -141,7 +155,6 @@ public class PnmImageParser extends 
AbstractImageParser<PnmImagingParameters> {
     @Override
     public Dimension getImageSize(final ByteSource byteSource, final 
PnmImagingParameters params) throws ImagingException, IOException {
         final AbstractFileInfo info = readHeader(byteSource);
-
         return new Dimension(info.width, info.height);
     }
 

Reply via email to