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 9cc6da1f131bd90225fd576f0aa70b6fc15d5cac Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Tue Mar 21 16:07:24 2023 -0400 Allow fluent API use of ImagingParameters and subclasses --- .../apache/commons/imaging/ImagingParameters.java | 36 ++-- .../imaging/common/XmpImagingParameters.java | 6 +- .../imaging/formats/bmp/BmpImagingParameters.java | 4 +- .../imaging/formats/gif/GifImagingParameters.java | 4 +- .../formats/icns/IcnsImagingParameters.java | 4 +- .../imaging/formats/ico/IcoImagingParameters.java | 4 +- .../formats/jpeg/JpegImagingParameters.java | 4 +- .../imaging/formats/pcx/PcxImagingParameters.java | 27 +-- .../imaging/formats/png/PngImagingParameters.java | 62 ++++--- .../imaging/formats/pnm/PnmImagingParameters.java | 16 +- .../imaging/formats/psd/PsdImagingParameters.java | 4 +- .../formats/rgbe/RgbeImagingParameters.java | 4 +- .../formats/tiff/TiffImagingParameters.java | 195 +++++++++++---------- .../formats/wbmp/WbmpImagingParameters.java | 4 +- .../imaging/formats/xbm/XbmImagingParameters.java | 4 +- .../imaging/formats/xpm/XpmImagingParameters.java | 4 +- 16 files changed, 219 insertions(+), 163 deletions(-) diff --git a/src/main/java/org/apache/commons/imaging/ImagingParameters.java b/src/main/java/org/apache/commons/imaging/ImagingParameters.java index 7ef1b3ac..4957ae63 100644 --- a/src/main/java/org/apache/commons/imaging/ImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/ImagingParameters.java @@ -24,9 +24,10 @@ import org.apache.commons.imaging.common.BufferedImageFactory; * <p>Contains parameters that are common to all formats. Implementations must include * the specific parameters for each image format.</p> * + * @param <E> This type * @since 1.0-alpha3 */ -public class ImagingParameters { +public class ImagingParameters<E extends ImagingParameters<E>> { /** * Whether to throw an exception when any issue occurs during reading @@ -54,35 +55,44 @@ public class ImagingParameters { // getters and setters - public boolean isStrict() { - return strict; + @SuppressWarnings("unchecked") + public E asThis() { + return (E) this; } - public void setStrict(final boolean strict) { - this.strict = strict; + public BufferedImageFactory getBufferedImageFactory() { + return bufferedImageFactory; } public String getFileName() { return fileName; } - public void setFileName(final String fileName) { - this.fileName = fileName; + public PixelDensity getPixelDensity() { + return pixelDensity; } - public BufferedImageFactory getBufferedImageFactory() { - return bufferedImageFactory; + public boolean isStrict() { + return strict; } - public void setBufferedImageFactory(final BufferedImageFactory bufferedImageFactory) { + public E setBufferedImageFactory(final BufferedImageFactory bufferedImageFactory) { this.bufferedImageFactory = bufferedImageFactory; + return asThis(); } - public PixelDensity getPixelDensity() { - return pixelDensity; + public E setFileName(final String fileName) { + this.fileName = fileName; + return asThis(); } - public void setPixelDensity(final PixelDensity pixelDensity) { + public E setPixelDensity(final PixelDensity pixelDensity) { this.pixelDensity = pixelDensity; + return asThis(); + } + + public E setStrict(final boolean strict) { + this.strict = strict; + return asThis(); } } diff --git a/src/main/java/org/apache/commons/imaging/common/XmpImagingParameters.java b/src/main/java/org/apache/commons/imaging/common/XmpImagingParameters.java index 810b22ab..f2f26ef8 100644 --- a/src/main/java/org/apache/commons/imaging/common/XmpImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/common/XmpImagingParameters.java @@ -21,9 +21,10 @@ import org.apache.commons.imaging.ImagingParameters; /** * Parameters for formats that support Xmp. + * * @since 1.0-alpha3 */ -public class XmpImagingParameters extends ImagingParameters { +public class XmpImagingParameters<E extends XmpImagingParameters<E>> extends ImagingParameters<E> { private String xmpXml; @@ -31,8 +32,9 @@ public class XmpImagingParameters extends ImagingParameters { return xmpXml; } - public void setXmpXml(final String xmpXml) { + public E setXmpXml(final String xmpXml) { this.xmpXml = xmpXml; + return asThis(); } } diff --git a/src/main/java/org/apache/commons/imaging/formats/bmp/BmpImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/bmp/BmpImagingParameters.java index 73cc8033..4b2110f1 100644 --- a/src/main/java/org/apache/commons/imaging/formats/bmp/BmpImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/bmp/BmpImagingParameters.java @@ -21,6 +21,8 @@ import org.apache.commons.imaging.ImagingParameters; /** * Bmp format parameters. + * * @since 1.0-alpha3 */ -public class BmpImagingParameters extends ImagingParameters {} +public class BmpImagingParameters extends ImagingParameters<BmpImagingParameters> { +} diff --git a/src/main/java/org/apache/commons/imaging/formats/gif/GifImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/gif/GifImagingParameters.java index 3a8490aa..66a11038 100644 --- a/src/main/java/org/apache/commons/imaging/formats/gif/GifImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/gif/GifImagingParameters.java @@ -21,6 +21,8 @@ import org.apache.commons.imaging.common.XmpImagingParameters; /** * Gif format parameters. + * * @since 1.0-alpha3 */ -public class GifImagingParameters extends XmpImagingParameters {} +public class GifImagingParameters extends XmpImagingParameters<GifImagingParameters> { +} diff --git a/src/main/java/org/apache/commons/imaging/formats/icns/IcnsImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsImagingParameters.java index c0475f8c..c155a817 100644 --- a/src/main/java/org/apache/commons/imaging/formats/icns/IcnsImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsImagingParameters.java @@ -19,6 +19,8 @@ import org.apache.commons.imaging.ImagingParameters; /** * Icns format parameters. + * * @since 1.0-alpha3 */ -public class IcnsImagingParameters extends ImagingParameters {} +public class IcnsImagingParameters extends ImagingParameters<IcnsImagingParameters> { +} diff --git a/src/main/java/org/apache/commons/imaging/formats/ico/IcoImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/ico/IcoImagingParameters.java index 0ac95c8b..8311a15c 100644 --- a/src/main/java/org/apache/commons/imaging/formats/ico/IcoImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/ico/IcoImagingParameters.java @@ -19,6 +19,8 @@ import org.apache.commons.imaging.ImagingParameters; /** * Ico format parameters. + * * @since 1.0-alpha3 */ -public class IcoImagingParameters extends ImagingParameters {} +public class IcoImagingParameters extends ImagingParameters<IcoImagingParameters> { +} diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImagingParameters.java index 1fed2d69..d7ed59be 100644 --- a/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImagingParameters.java @@ -19,6 +19,8 @@ import org.apache.commons.imaging.common.XmpImagingParameters; /** * Jpeg format parameters. + * * @since 1.0-alpha3 */ -public class JpegImagingParameters extends XmpImagingParameters {} +public class JpegImagingParameters extends XmpImagingParameters<JpegImagingParameters> { +} diff --git a/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImagingParameters.java index 35b221b2..811e5e1e 100644 --- a/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImagingParameters.java @@ -21,34 +21,37 @@ import org.apache.commons.imaging.ImagingParameters; * Parameters used by the Pcx format. * @since 1.0-alpha3 */ -public class PcxImagingParameters extends ImagingParameters { +public class PcxImagingParameters extends ImagingParameters<PcxImagingParameters> { private int planes = -1; private int bitDepth = -1; private int compression = PcxConstants.PCX_COMPRESSION_UNCOMPRESSED; - public int getPlanes() { - return planes; + public int getBitDepth() { + return bitDepth; } - public void setPlanes(final int planes) { - this.planes = planes; + public int getCompression() { + return compression; } - public int getBitDepth() { - return bitDepth; + public int getPlanes() { + return planes; } - public void setBitDepth(final int bitDepth) { + public PcxImagingParameters setBitDepth(final int bitDepth) { this.bitDepth = bitDepth; + return asThis(); } - public int getCompression() { - return compression; + public PcxImagingParameters setCompression(final int compression) { + this.compression = compression; + return asThis(); } - public void setCompression(final int compression) { - this.compression = compression; + public PcxImagingParameters setPlanes(final int planes) { + this.planes = planes; + return asThis(); } } diff --git a/src/main/java/org/apache/commons/imaging/formats/png/PngImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/png/PngImagingParameters.java index 0eb6f297..90440506 100644 --- a/src/main/java/org/apache/commons/imaging/formats/png/PngImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/png/PngImagingParameters.java @@ -24,7 +24,7 @@ import org.apache.commons.imaging.common.XmpImagingParameters; * Png format parameters. * @since 1.0-alpha3 */ -public class PngImagingParameters extends XmpImagingParameters { +public class PngImagingParameters extends XmpImagingParameters<PngImagingParameters> { public static final byte DEFAULT_BIT_DEPTH = 8; @@ -59,49 +59,49 @@ public class PngImagingParameters extends XmpImagingParameters { return bitDepth; } - public void setBitDepth(final byte bitDepth) { - this.bitDepth = bitDepth; + public PhysicalScale getPhysicalScale() { + return physicalScale; } - public boolean isForceIndexedColor() { - return forceIndexedColor; + public List<? extends PngText> getTextChunks() { + return textChunks != null ? Collections.unmodifiableList(textChunks) : null; } - public void setForceIndexedColor(final boolean forceIndexedColor) { - this.forceIndexedColor = forceIndexedColor; + public boolean isForceIndexedColor() { + return forceIndexedColor; } public boolean isForceTrueColor() { return forceTrueColor; } - public void setForceTrueColor(final boolean forceTrueColor) { - this.forceTrueColor = forceTrueColor; - } - - public PhysicalScale getPhysicalScale() { - return physicalScale; + /** + * Indicates that the PNG write operation should enable + * the predictor. + * @return true if the predictor is enabled; otherwise, false. + */ + public boolean isPredictorEnabled(){ + return predictorEnabled; } - public void setPhysicalScale(final PhysicalScale physicalScale) { - this.physicalScale = physicalScale; + public PngImagingParameters setBitDepth(final byte bitDepth) { + this.bitDepth = bitDepth; + return asThis(); } - public List<? extends PngText> getTextChunks() { - return textChunks != null ? Collections.unmodifiableList(textChunks) : null; + public PngImagingParameters setForceIndexedColor(final boolean forceIndexedColor) { + this.forceIndexedColor = forceIndexedColor; + return asThis(); } - public void setTextChunks(final List<? extends PngText> textChunks) { - this.textChunks = Collections.unmodifiableList(textChunks); + public PngImagingParameters setForceTrueColor(final boolean forceTrueColor) { + this.forceTrueColor = forceTrueColor; + return asThis(); } - /** - * Indicates that the PNG write operation should enable - * the predictor. - * @return true if the predictor is enabled; otherwise, false. - */ - public boolean isPredictorEnabled(){ - return predictorEnabled; + public PngImagingParameters setPhysicalScale(final PhysicalScale physicalScale) { + this.physicalScale = physicalScale; + return asThis(); } /** @@ -112,9 +112,17 @@ public class PngImagingParameters extends XmpImagingParameters { * The specification of a predictor may result in an increased * processing time when writing an image, but will not affect the * time required to read an image. + * * @param predictorEnabled true if a predictor is enabled; otherwise, false. + * @return this */ - public void setPredictorEnabled(final boolean predictorEnabled){ + public PngImagingParameters setPredictorEnabled(final boolean predictorEnabled){ this.predictorEnabled = predictorEnabled; + return asThis(); + } + + public PngImagingParameters setTextChunks(final List<? extends PngText> textChunks) { + this.textChunks = Collections.unmodifiableList(textChunks); + return asThis(); } } diff --git a/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImagingParameters.java index 6cb95681..65f9c4eb 100644 --- a/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImagingParameters.java @@ -23,7 +23,7 @@ import org.apache.commons.imaging.ImagingParameters; * Pnm format parameters. * @since 1.0-alpha3 */ -public class PnmImagingParameters extends ImagingParameters { +public class PnmImagingParameters extends ImagingParameters<PnmImagingParameters> { private boolean rawBits = true; /** @@ -31,19 +31,21 @@ public class PnmImagingParameters extends ImagingParameters { */ private ImageFormats subtype = null; + public ImageFormats getSubtype() { + return subtype; + } + public boolean isRawBits() { return rawBits; } - public void setRawBits(final boolean rawBits) { + public PnmImagingParameters setRawBits(final boolean rawBits) { this.rawBits = rawBits; + return asThis(); } - public ImageFormats getSubtype() { - return subtype; - } - - public void setSubtype(final ImageFormats subtype) { + public PnmImagingParameters setSubtype(final ImageFormats subtype) { this.subtype = subtype; + return asThis(); } } diff --git a/src/main/java/org/apache/commons/imaging/formats/psd/PsdImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/psd/PsdImagingParameters.java index d2889a7d..bdc6f70d 100644 --- a/src/main/java/org/apache/commons/imaging/formats/psd/PsdImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/psd/PsdImagingParameters.java @@ -21,6 +21,8 @@ import org.apache.commons.imaging.ImagingParameters; /** * Psd format parameters. + * * @since 1.0-alpha3 */ -public class PsdImagingParameters extends ImagingParameters {} +public class PsdImagingParameters extends ImagingParameters<PsdImagingParameters> { +} diff --git a/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeImagingParameters.java index 09d8cf59..877436e2 100644 --- a/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeImagingParameters.java @@ -19,6 +19,8 @@ import org.apache.commons.imaging.ImagingParameters; /** * Rgbe format parameters. + * * @since 1.0-alpha3 */ -public class RgbeImagingParameters extends ImagingParameters {} +public class RgbeImagingParameters extends ImagingParameters<RgbeImagingParameters> { +} diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImagingParameters.java index bb64fddf..8823a244 100644 --- a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImagingParameters.java @@ -21,9 +21,10 @@ import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet; /** * Tiff format parameters. + * * @since 1.0-alpha3 */ -public class TiffImagingParameters extends XmpImagingParameters { +public class TiffImagingParameters extends XmpImagingParameters<TiffImagingParameters> { /** * Indicates whether to read embedded thumbnails or not. Only applies to read EXIF metadata from JPEG/JFIF files. @@ -99,12 +100,25 @@ public class TiffImagingParameters extends XmpImagingParameters { */ private Integer t6Options = null; - public boolean isReadThumbnails() { - return readThumbnails; + /** + * Clears settings for sub-image. Subsequent read operations will retrieve + * the entire image. + */ + public void clearSubImage() { + subImageWidth = 0; + subImageHeight = 0; } - public void setReadThumbnails(final boolean readThumbnails) { - this.readThumbnails = readThumbnails; + public Integer getCompression() { + return compression; + } + + public PhotometricInterpreter getCustomPhotometricInterpreter() { + return customPhotometricInterpreter; + } + + public Integer getLzwCompressionBlockSize() { + return lzwCompressionBlockSize; } /** @@ -116,64 +130,25 @@ public class TiffImagingParameters extends XmpImagingParameters { } /** - * Set the TIFF output set for writing TIFF files. An output set - * may contain various types of TiffDirectories including image directories, - * EXIF directories, GPS-related directories, etc. - * - * @param tiffOutputSet A valid instance. - */ - public void setOutputSet(final TiffOutputSet tiffOutputSet) { - this.tiffOutputSet = tiffOutputSet; - } - - /** - * Sets parameters for performing a partial read operation on an image. This - * method is useful for reducing memory and run-time overhead when accessing - * large source images. - * <p> - * Note that the corner x and y coordinates must be positive integers (zero - * or greater). The width and height must be greater than zero. + * Gets the height for a sub-image setting. For a sub-image setting to be + * meaningful, both the width and height must be set. * - * @param x pixel coordinate of the upper-left corner of the source image, - * must be zero or greater. - * @param y pixel coordinate of the upper-left corner of the source image, - * must be zero or greater. - * @param width width of the image subset to be read, must be greater than - * zero. - * @param height height of the image subset to be read, must be greater than - * zero. - */ - public void setSubImage(final int x, final int y, final int width, final int height) { - if (x < 0 || y < 0) { - throw new IllegalArgumentException( - "Invalid sub-image specification: negative x and y values not allowed"); - } - if (width <= 0 || height <= 0) { - throw new IllegalArgumentException( - "Invalid sub-image specification width and height must be greater than zero"); - } - subImageX = x; - subImageY = y; - subImageWidth = width; - subImageHeight = height; - } - - /** - * Clears settings for sub-image. Subsequent read operations will retrieve - * the entire image. + * @return if the sub-image feature is enabled, a value greater than zero; + * otherwise, zero. */ - public void clearSubImage() { - subImageWidth = 0; - subImageHeight = 0; + public int getSubImageHeight() { + return subImageHeight; } /** - * Indicates whether the application has set sub-image parameters. + * Gets the width for a sub-image setting. For a sub-image setting to be + * meaningful, both the width and height must be set. * - * @return true if the sub-image parameters are set; otherwise, false. + * @return if the sub-image feature is enabled, a value greater than zero; + * otherwise, zero. */ - public boolean isSubImageSet() { - return subImageWidth > 0 && subImageHeight > 0; + public int getSubImageWidth() { + return subImageWidth; } /** @@ -196,66 +171,102 @@ public class TiffImagingParameters extends XmpImagingParameters { return subImageY; } - /** - * Gets the width for a sub-image setting. For a sub-image setting to be - * meaningful, both the width and height must be set. - * - * @return if the sub-image feature is enabled, a value greater than zero; - * otherwise, zero. - */ - public int getSubImageWidth() { - return subImageWidth; + public Integer getT4Options() { + return t4Options; + } + + public Integer getT6Options() { + return t6Options; + } + + public boolean isReadThumbnails() { + return readThumbnails; } /** - * Gets the height for a sub-image setting. For a sub-image setting to be - * meaningful, both the width and height must be set. + * Indicates whether the application has set sub-image parameters. * - * @return if the sub-image feature is enabled, a value greater than zero; - * otherwise, zero. + * @return true if the sub-image parameters are set; otherwise, false. */ - public int getSubImageHeight() { - return subImageHeight; + public boolean isSubImageSet() { + return subImageWidth > 0 && subImageHeight > 0; } - public PhotometricInterpreter getCustomPhotometricInterpreter() { - return customPhotometricInterpreter; + public TiffImagingParameters setCompression(final Integer compression) { + this.compression = compression; + return asThis(); } - public void setCustomPhotometricInterpreter(final PhotometricInterpreter customPhotometricInterpreter) { + public TiffImagingParameters setCustomPhotometricInterpreter(final PhotometricInterpreter customPhotometricInterpreter) { this.customPhotometricInterpreter = customPhotometricInterpreter; + return asThis(); } - public Integer getCompression() { - return compression; - } - - public void setCompression(final Integer compression) { - this.compression = compression; + public TiffImagingParameters setLzwCompressionBlockSize(final Integer lzwCompressionBlockSize) { + this.lzwCompressionBlockSize = lzwCompressionBlockSize; + return asThis(); } - public Integer getLzwCompressionBlockSize() { - return lzwCompressionBlockSize; + /** + * Set the TIFF output set for writing TIFF files. An output set + * may contain various types of TiffDirectories including image directories, + * EXIF directories, GPS-related directories, etc. + * + * @param tiffOutputSet A valid instance. + * @return this + */ + public TiffImagingParameters setOutputSet(final TiffOutputSet tiffOutputSet) { + this.tiffOutputSet = tiffOutputSet; + return asThis(); } - public void setLzwCompressionBlockSize(final Integer lzwCompressionBlockSize) { - this.lzwCompressionBlockSize = lzwCompressionBlockSize; + public TiffImagingParameters setReadThumbnails(final boolean readThumbnails) { + this.readThumbnails = readThumbnails; + return asThis(); } - public Integer getT4Options() { - return t4Options; + /** + * Sets parameters for performing a partial read operation on an image. This + * method is useful for reducing memory and run-time overhead when accessing + * large source images. + * <p> + * Note that the corner x and y coordinates must be positive integers (zero + * or greater). The width and height must be greater than zero. + * + * @param x pixel coordinate of the upper-left corner of the source image, + * must be zero or greater. + * @param y pixel coordinate of the upper-left corner of the source image, + * must be zero or greater. + * @param width width of the image subset to be read, must be greater than + * zero. + * @param height height of the image subset to be read, must be greater than + * zero. + * @return this + */ + public TiffImagingParameters setSubImage(final int x, final int y, final int width, final int height) { + if (x < 0 || y < 0) { + throw new IllegalArgumentException( + "Invalid sub-image specification: negative x and y values not allowed"); + } + if (width <= 0 || height <= 0) { + throw new IllegalArgumentException( + "Invalid sub-image specification width and height must be greater than zero"); + } + subImageX = x; + subImageY = y; + subImageWidth = width; + subImageHeight = height; + return asThis(); } - public void setT4Options(final Integer t4Options) { + public TiffImagingParameters setT4Options(final Integer t4Options) { this.t4Options = t4Options; + return asThis(); } - public Integer getT6Options() { - return t6Options; - } - - public void setT6Options(final Integer t6Options) { + public TiffImagingParameters setT6Options(final Integer t6Options) { this.t6Options = t6Options; + return asThis(); } } diff --git a/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImagingParameters.java index f74f28e8..73b6ee45 100644 --- a/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImagingParameters.java @@ -19,6 +19,8 @@ import org.apache.commons.imaging.ImagingParameters; /** * Wbmp format parameters. + * * @since 1.0-alpha3 */ -public class WbmpImagingParameters extends ImagingParameters {} +public class WbmpImagingParameters extends ImagingParameters<WbmpImagingParameters> { +} diff --git a/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImagingParameters.java index b0daa357..07a3243f 100644 --- a/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImagingParameters.java @@ -19,6 +19,8 @@ import org.apache.commons.imaging.ImagingParameters; /** * Xbm format parameters. + * * @since 1.0-alpha3 */ -public class XbmImagingParameters extends ImagingParameters {} +public class XbmImagingParameters extends ImagingParameters<XbmImagingParameters> { +} diff --git a/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImagingParameters.java index 36be8571..e21064f3 100644 --- a/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImagingParameters.java +++ b/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImagingParameters.java @@ -18,6 +18,8 @@ import org.apache.commons.imaging.ImagingParameters; /** * Xpm format parameters. + * * @since 1.0-alpha3 */ -public class XpmImagingParameters extends ImagingParameters {} +public class XpmImagingParameters extends ImagingParameters<XpmImagingParameters> { +}