/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2006-2011, Open Source Geospatial Foundation (OSGeo) * * 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.geotools.gce.grassraster.spi; import java.io.File; import java.io.IOException; import java.util.Locale; import javax.imageio.ImageTypeSpecifier; import javax.imageio.ImageWriter; import javax.imageio.spi.ImageWriterSpi; import org.geotools.gce.grassraster.GrassBinaryImageReader; import org.geotools.gce.grassraster.GrassBinaryImageWriter; /** * The Service Provider Interface for GRASS binary rasters. * * @author Andrea Antonello (www.hydrologis.com) * @since 3.0 * @see GrassBinaryImageWriter * @see GrassBinaryImageReader * @see GrassBinaryImageWriterSpi * * @source $URL: http://svn.osgeo.org/geotools/trunk/modules/plugin/grassraster/src/main/java/org/geotools/gce/grassraster/spi/GrassBinaryImageWriterSpi.java $ */ @SuppressWarnings("nls") public class GrassBinaryImageWriterSpi extends ImageWriterSpi { private static final String[] suffixes = {""}; private static final String[] formatNames = {"grass", "GRASS", "grassbin", "GRASS binary raster"}; private static final String[] MIMETypes = {"image/grass"}; private static final String version = "1.0"; private static final String vendorName = "www.hydrologis.com"; /** * the class name of the image writer. */ private static final String writerCN = "eu.hydrologis.jgrass.grassbinary.imageio.io.GrassBinaryImageWriter"; /** * the outputTypes handled by the {@link GrassBinaryImageWriter}. */ private static final Class< ? >[] outputTypes = new Class[]{File.class}; /** * the readerSpiName */ private static final String[] rSN = {"eu.hydrologis.jgrass.grassbinary.imageio.io.GrassBinaryImageReaderSpi"}; /** * the flag for stream metadata support. */ private static final boolean supportsStandardStreamMetadataFormat = false; private static final String nativeStreamMetadataFormatName = null; private static final String nativeStreamMetadataFormatClassName = null; private static final String[] extraStreamMetadataFormatNames = null; private static final String[] extraStreamMetadataFormatClassNames = null; /** * the flag for image metadata support. */ private static final boolean supportsStandardImageMetadataFormat = false; private static final String nativeImageMetadataFormatName = "eu.hydrologis.jgrass.grassbinary.imageio.metadata.GrassBinaryImageMetadata_1.0"; private static final String nativeImageMetadataFormatClassName = "eu.hydrologis.jgrass.grassbinary.imageio.metadata.GrassBinaryImageMetadataFormat"; private static final String[] extraImageMetadataFormatNames = {null}; private static final String[] extraImageMetadataFormatClassNames = {null}; /** * default constructor for the service provider interface. */ public GrassBinaryImageWriterSpi() { super(vendorName, version, formatNames, suffixes, MIMETypes, writerCN, outputTypes, rSN, supportsStandardStreamMetadataFormat, nativeStreamMetadataFormatName, nativeStreamMetadataFormatClassName, extraStreamMetadataFormatNames, extraStreamMetadataFormatClassNames, supportsStandardImageMetadataFormat, nativeImageMetadataFormatName, nativeImageMetadataFormatClassName, extraImageMetadataFormatNames, extraImageMetadataFormatClassNames); } public boolean canEncodeImage( ImageTypeSpecifier its ) { // TODO what has to be done here? return true; } public ImageWriter createWriterInstance( Object extension ) throws IOException { return new GrassBinaryImageWriter(this, null); } public String getDescription( Locale locale ) { return "GRASS binary raster image writer service provider interface, version " + version; } }