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