You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ki...@apache.org on 2022/01/16 02:03:13 UTC

[commons-imaging] 13/24: [IMAGING-159] Use List with generics instead of Array, update related code, and fix few issues found after IDE analysis

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

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

commit 414d9e11c8e1fae1cad46b41867b4dd4e7bdd1a6
Author: Bruno P. Kinoshita <ki...@apache.org>
AuthorDate: Sat Jul 17 18:17:06 2021 +1200

    [IMAGING-159] Use List with generics instead of Array, update related code, and fix few issues found after IDE analysis
---
 .../org/apache/commons/imaging/ImageFormats.java   |  4 +--
 .../org/apache/commons/imaging/ImageParser.java    | 22 ++++++-------
 .../java/org/apache/commons/imaging/Imaging.java   | 37 ++++++++++------------
 .../imaging/common/itu_t4/T4_T6_Tables.java        |  4 +--
 .../imaging/formats/tiff/TiffImageData.java        |  2 +-
 .../imaging/formats/wbmp/WbmpImageParser.java      |  8 ++---
 .../imaging/formats/xbm/XbmImageParser.java        |  4 +--
 .../imaging/formats/xpm/XpmImageParser.java        | 12 +++----
 .../tiff/ExampleReadFloatingPointData.java         |  2 +-
 .../commons/imaging/roundtrip/FormatInfo.java      |  2 +-
 .../imaging/roundtrip/FullColorRoundtrip.java      |  2 +-
 11 files changed, 47 insertions(+), 52 deletions(-)

diff --git a/src/main/java/org/apache/commons/imaging/ImageFormats.java b/src/main/java/org/apache/commons/imaging/ImageFormats.java
index c3d200d..7779f83 100644
--- a/src/main/java/org/apache/commons/imaging/ImageFormats.java
+++ b/src/main/java/org/apache/commons/imaging/ImageFormats.java
@@ -65,8 +65,8 @@ public enum ImageFormats implements ImageFormat {
 
     private static final Logger LOGGER = Logger.getLogger(ImageFormats.class.getName());
 
-    private String[] extensions;
-    private Class<? extends ImagingParameters> parametersClass;
+    private final String[] extensions;
+    private final Class<? extends ImagingParameters> parametersClass;
 
     ImageFormats(Class<? extends ImagingParameters> parametersClass, String ...extensions) {
         this.extensions = extensions;
diff --git a/src/main/java/org/apache/commons/imaging/ImageParser.java b/src/main/java/org/apache/commons/imaging/ImageParser.java
index 7e92cd0..2710ea5 100644
--- a/src/main/java/org/apache/commons/imaging/ImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/ImageParser.java
@@ -24,6 +24,7 @@ import java.io.OutputStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
 import java.util.logging.Level;
@@ -98,9 +99,8 @@ public abstract class ImageParser<T extends ImagingParameters> extends BinaryFil
      *
      * @return A valid array of image parsers
      */
-    public static ImageParser<?>[] getAllImageParsers() {
-
-        return new ImageParser[]{
+    public static List<ImageParser<?>> getAllImageParsers() {
+        return Arrays.asList(
                 new BmpImageParser(),
                 new DcxImageParser(),
                 new GifImageParser(),
@@ -115,10 +115,10 @@ public abstract class ImageParser<T extends ImagingParameters> extends BinaryFil
                 new TiffImageParser(),
                 new WbmpImageParser(),
                 new XbmImageParser(),
-                new XpmImageParser(),
+                new XpmImageParser()
                 // new JBig2ImageParser(),
                 // new TgaImageParser(),
-        };
+        );
     }
 
     /**
@@ -898,18 +898,16 @@ public abstract class ImageParser<T extends ImagingParameters> extends BinaryFil
      * @return If the parser can accept the format, true; otherwise, false.
      */
     protected final boolean canAcceptExtension(final String fileName) {
-        final String[] exts = getAcceptedExtensions();
-        if (exts == null) {
+        final String[] extensions = getAcceptedExtensions();
+        if (extensions == null) {
             return true;
         }
 
         final int index = fileName.lastIndexOf('.');
         if (index >= 0) {
-            String ext = fileName.substring(index + 1);
-            ext = ext.toLowerCase(Locale.ENGLISH);
-
-            for (final String ext2 : exts) {
-                if (ext2.equals(ext)) {
+            final String fileNameExtension = fileName.substring(index + 1).toLowerCase(Locale.ENGLISH);
+            for (final String extension : extensions) {
+                if (extension.equals(fileNameExtension)) {
                     return true;
                 }
             }
diff --git a/src/main/java/org/apache/commons/imaging/Imaging.java b/src/main/java/org/apache/commons/imaging/Imaging.java
index 1ae01a5..aaac462 100644
--- a/src/main/java/org/apache/commons/imaging/Imaging.java
+++ b/src/main/java/org/apache/commons/imaging/Imaging.java
@@ -332,20 +332,18 @@ public final class Imaging {
             }
             return Stream
                 .of(ImageFormats.values())
-                .filter((imageFormat) -> {
-                    return Stream
-                        .of(imageFormat.getExtensions())
-                        .anyMatch((extension) -> {
-                            final String fileName = byteSource.getFileName();
-                            if (fileName == null || fileName.trim().length() == 0) {
-                                return false;
-                            }
-                            final String fileExtension = fileName.substring(fileName.lastIndexOf('.') + 1);
-                            return extension != null
-                                    && extension.trim().length() > 0
-                                    && fileExtension.equalsIgnoreCase(extension);
-                        });
-                })
+                .filter((imageFormat) -> Stream
+                    .of(imageFormat.getExtensions())
+                    .anyMatch((extension) -> {
+                        final String fileName = byteSource.getFileName();
+                        if (fileName == null || fileName.trim().length() == 0) {
+                            return false;
+                        }
+                        final String fileExtension = fileName.substring(fileName.lastIndexOf('.') + 1);
+                        return extension != null
+                                && extension.trim().length() > 0
+                                && fileExtension.equalsIgnoreCase(extension);
+                    }))
                 .findFirst()
                 .orElse(ImageFormats.UNKNOWN)
             ;
@@ -749,23 +747,22 @@ public final class Imaging {
     private static ImageParser getImageParser(final ByteSource byteSource) throws ImageReadException, IOException {
         final ImageFormat format = guessFormat(byteSource);
         if (!format.equals(ImageFormats.UNKNOWN)) {
-
-            final ImageParser<?>[] imageParsers = ImageParser.getAllImageParsers();
+            final List<ImageParser<?>> imageParsers = ImageParser.getAllImageParsers();
 
             for (final ImageParser<?> imageParser : imageParsers) {
                 if (imageParser.canAcceptType(format)) {
-                    return (ImageParser) imageParser;
+                    return imageParser;
                 }
             }
         }
 
         final String fileName = byteSource.getFileName();
         if (fileName != null) {
-            final ImageParser<?>[] imageParsers = ImageParser.getAllImageParsers();
+            final List<ImageParser<?>> imageParsers = ImageParser.getAllImageParsers();
 
             for (final ImageParser<?> imageParser : imageParsers) {
                 if (imageParser.canAcceptExtension(fileName)) {
-                    return (ImageParser) imageParser;
+                    return imageParser;
                 }
             }
         }
@@ -1542,7 +1539,7 @@ public final class Imaging {
     public static void writeImage(final BufferedImage src, final OutputStream os,
             final ImageFormat format, ImagingParameters params) throws ImageWriteException,
             IOException {
-        final ImageParser<?>[] imageParsers = ImageParser.getAllImageParsers();
+        final List<ImageParser<?>> imageParsers = ImageParser.getAllImageParsers();
         if (params == null) {
             params = format.createImagingParameters();
         }
diff --git a/src/main/java/org/apache/commons/imaging/common/itu_t4/T4_T6_Tables.java b/src/main/java/org/apache/commons/imaging/common/itu_t4/T4_T6_Tables.java
index 46887e5..f18ad63 100644
--- a/src/main/java/org/apache/commons/imaging/common/itu_t4/T4_T6_Tables.java
+++ b/src/main/java/org/apache/commons/imaging/common/itu_t4/T4_T6_Tables.java
@@ -241,8 +241,8 @@ class T4_T6_Tables {
     public static final Entry VL3 = new Entry("0000010", 0);
 
     public static class Entry {
-        String bitString;
-        Integer value;
+        final String bitString;
+        final Integer value;
 
         Entry(final String bitString, final int value) {
             this.bitString = bitString;
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java
index 27f4341..b58c778 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageData.java
@@ -163,7 +163,7 @@ public abstract class TiffImageData {
     }
 
     public static class ByteSourceData extends Data {
-        ByteSourceFile byteSourceFile;
+        final ByteSourceFile byteSourceFile;
 
         public ByteSourceData(final long offset, final int length, final ByteSourceFile byteSource) {
             super(offset, length, ImagingConstants.EMPTY_BYTE_ARRAY);
diff --git a/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImageParser.java b/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImageParser.java
index 372a4b9..a98032c 100644
--- a/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImageParser.java
@@ -97,10 +97,10 @@ public class WbmpImageParser extends ImageParser<WbmpImagingParameters> {
     }
 
     static class WbmpHeader {
-        int typeField;
-        byte fixHeaderField;
-        int width;
-        int height;
+        final int typeField;
+        final byte fixHeaderField;
+        final int width;
+        final int height;
 
         WbmpHeader(final int typeField, final byte fixHeaderField, final int width,
                 final int height) {
diff --git a/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImageParser.java b/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImageParser.java
index cf89430..63160c1 100644
--- a/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImageParser.java
@@ -102,8 +102,8 @@ public class XbmImageParser extends ImageParser<XbmImagingParameters> {
     }
 
     private static class XbmHeader {
-        int width;
-        int height;
+        final int width;
+        final int height;
         int xHot = -1;
         int yHot = -1;
 
diff --git a/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImageParser.java b/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImageParser.java
index 77490de..cb31a64 100644
--- a/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImageParser.java
@@ -169,15 +169,15 @@ public class XpmImageParser extends ImageParser<XpmImagingParameters> {
     }
 
     private static class XpmHeader {
-        int width;
-        int height;
-        int numColors;
-        int numCharsPerPixel;
+        final int width;
+        final int height;
+        final int numColors;
+        final int numCharsPerPixel;
         int xHotSpot = -1;
         int yHotSpot = -1;
-        boolean xpmExt;
+        final boolean xpmExt;
 
-        Map<Object, PaletteEntry> palette = new HashMap<>();
+        final  Map<Object, PaletteEntry> palette = new HashMap<>();
 
         XpmHeader(final int width, final int height, final int numColors,
                 final int numCharsPerPixel, final int xHotSpot, final int yHotSpot, final boolean xpmExt) {
diff --git a/src/test/java/org/apache/commons/imaging/examples/tiff/ExampleReadFloatingPointData.java b/src/test/java/org/apache/commons/imaging/examples/tiff/ExampleReadFloatingPointData.java
index 9970a73..42e56fc 100644
--- a/src/test/java/org/apache/commons/imaging/examples/tiff/ExampleReadFloatingPointData.java
+++ b/src/test/java/org/apache/commons/imaging/examples/tiff/ExampleReadFloatingPointData.java
@@ -154,7 +154,7 @@ public class ExampleReadFloatingPointData {
             System.out.println("Writing image to " + output.getPath());
             // create a new photometric interpreter based on the range
             // of values found above.
-            final List<PaletteEntry> paletteList = new ArrayList();
+            final List<PaletteEntry> paletteList = new ArrayList<>();
             if (!Float.isNaN(excludedValue)) {
                 // draw the excluded value in red.
                 paletteList.add(new PaletteEntryForValue(excludedValue, Color.red));
diff --git a/src/test/java/org/apache/commons/imaging/roundtrip/FormatInfo.java b/src/test/java/org/apache/commons/imaging/roundtrip/FormatInfo.java
index 89aba8a..6f29c82 100644
--- a/src/test/java/org/apache/commons/imaging/roundtrip/FormatInfo.java
+++ b/src/test/java/org/apache/commons/imaging/roundtrip/FormatInfo.java
@@ -42,7 +42,7 @@ class FormatInfo {
                     COLOR_FULL_RGB, true, true), //
     };
 
-    static FormatInfo[] READ_WRITE_FORMATS = new FormatInfo[] {
+    static final FormatInfo[] READ_WRITE_FORMATS = new FormatInfo[] {
             new FormatInfo(ImageFormats.PNG, true, true,
                     COLOR_FULL_RGB, true, true), //
             new FormatInfo(ImageFormats.GIF, true, true,
diff --git a/src/test/java/org/apache/commons/imaging/roundtrip/FullColorRoundtrip.java b/src/test/java/org/apache/commons/imaging/roundtrip/FullColorRoundtrip.java
index cc161eb..3f9a9e0 100644
--- a/src/test/java/org/apache/commons/imaging/roundtrip/FullColorRoundtrip.java
+++ b/src/test/java/org/apache/commons/imaging/roundtrip/FullColorRoundtrip.java
@@ -26,7 +26,7 @@ import org.junit.jupiter.params.provider.MethodSource;
 
 public class FullColorRoundtrip extends RoundtripBase {
 
-    public static BufferedImage[] images = new BufferedImage[]{
+    public static final BufferedImage[] images = new BufferedImage[]{
             TestImages.createFullColorImage(1, 1), // minimal
             TestImages.createFullColorImage(2, 2), //
             TestImages.createFullColorImage(10, 10), // larger than 8