/* * Geotoolkit.org - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2011-2012, Open Source Geospatial Foundation (OSGeo) * (C) 2011-2012, Geomatys * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotoolkit.image.io; import java.awt.Point; import java.awt.Dimension; import java.awt.Rectangle; import java.util.Locale; import javax.imageio.ImageWriter; import javax.imageio.ImageWriteParam; import javax.imageio.ImageTypeSpecifier; import javax.imageio.IIOParamController; import org.geotoolkit.lang.Decorator; /** * The parameters for {@link SpatialImageWriteParam}. Every call to methods in this class * delegates to the wrapped parameters. * * @author Martin Desruisseaux (Geomatys) * @version 3.18 * * @since 3.18 * @module */ @Decorator(ImageWriteParam.class) final class ImageWriteParamAdapter extends SpatialImageWriteParam { /** * The wrapped parameters. */ final ImageWriteParam param; /** * Creates new parameters. * * @param adapter The {@link ImageWriterAdapter} instance which is creating this parameter. * @param param The parameters created by the wrapped writer. */ ImageWriteParamAdapter(final ImageWriter adapter, final ImageWriteParam param) { super(adapter); this.param = param; destinationOffset = null; // Useless since we will use the point defined in the wrapped param. } /* * The first methods up to the ones related to the controller are inherited from IIOParam. * Those methods are copied verbatism in ImageReadParamAdapter (we can not factor them out * in a super-class). */ @Override public void setSourceRegion(Rectangle sourceRegion) {param.setSourceRegion(sourceRegion);} @Override public void setSourceSubsampling(int sx, int sy, int ox, int oy) {param.setSourceSubsampling(sx, sy, ox, oy);} @Override public void setSourceBands(int[] sourceBands) {param.setSourceBands(sourceBands);} @Override public void setDestinationType(ImageTypeSpecifier type) {param.setDestinationType(type);} @Override public void setDestinationOffset(Point destinationOffset) {param.setDestinationOffset(destinationOffset);} @Override public void setController(IIOParamController controller) {param.setController(controller);} @Override public void setTilingMode(int mode) {param.setTilingMode(mode);} @Override public void setTiling(int dx, int dy, int ox, int oy) {param.setTiling(dx, dy, ox, oy);} @Override public void unsetTiling() {param.unsetTiling();} @Override public void setProgressiveMode(int mode) {param.setProgressiveMode(mode);} @Override public void setCompressionMode(int mode) {param.setCompressionMode(mode);} @Override public void setCompressionType(String type) {param.setCompressionType(type);} @Override public void unsetCompression() {param.unsetCompression();} @Override public void setCompressionQuality(float quality) {param.setCompressionQuality(quality);} @Override public Rectangle getSourceRegion() {return param.getSourceRegion();} @Override public int getSourceXSubsampling() {return param.getSourceXSubsampling();} @Override public int getSourceYSubsampling() {return param.getSourceYSubsampling();} @Override public int getSubsamplingXOffset() {return param.getSubsamplingXOffset();} @Override public int getSubsamplingYOffset() {return param.getSubsamplingYOffset();} @Override public int[] getSourceBands() {return param.getSourceBands();} @Override public ImageTypeSpecifier getDestinationType() {return param.getDestinationType();} @Override public Point getDestinationOffset() {return param.getDestinationOffset();} @Override public IIOParamController getController() {return param.getController();} @Override public IIOParamController getDefaultController() {return param.getDefaultController();} @Override public boolean hasController() {return param.hasController();} @Override public boolean activateController() {return param.activateController();} @Override public Locale getLocale() {return param.getLocale();} @Override public boolean canWriteTiles() {return param.canWriteTiles();} @Override public boolean canOffsetTiles() {return param.canOffsetTiles();} @Override public int getTilingMode() {return param.getTilingMode();} @Override public Dimension[] getPreferredTileSizes() {return param.getPreferredTileSizes();} @Override public int getTileWidth() {return param.getTileWidth();} @Override public int getTileHeight() {return param.getTileHeight();} @Override public int getTileGridXOffset() {return param.getTileGridXOffset();} @Override public int getTileGridYOffset() {return param.getTileGridYOffset();} @Override public boolean canWriteProgressive() {return param.canWriteProgressive();} @Override public int getProgressiveMode() {return param.getProgressiveMode();} @Override public boolean canWriteCompressed() {return param.canWriteCompressed();} @Override public int getCompressionMode() {return param.getCompressionMode();} @Override public String[] getCompressionTypes() {return param.getCompressionTypes();} @Override public String getCompressionType() {return param.getCompressionType();} @Override public String getLocalizedCompressionTypeName() {return param.getLocalizedCompressionTypeName();} @Override public boolean isCompressionLossless() {return param.isCompressionLossless();} @Override public float getCompressionQuality() {return param.getCompressionQuality();} @Override public float getBitRate(float quality) {return param.getBitRate(quality);} @Override public String[] getCompressionQualityDescriptions() {return param.getCompressionQualityDescriptions();} @Override public float[] getCompressionQualityValues() {return param.getCompressionQualityValues();} }