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