/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2002-2008, 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.gtopo30; import java.io.File; import java.net.URL; import javax.media.jai.JAI; import javax.media.jai.TileCache; import org.geotools.coverage.grid.GridCoverage2D; import org.geotools.coverage.grid.io.AbstractGridFormat; import org.geotools.test.TestData; import org.opengis.coverage.grid.GridCoverageReader; import org.opengis.coverage.grid.GridCoverageWriter; import org.opengis.parameter.GeneralParameterValue; import org.opengis.parameter.ParameterValueGroup; /** * Purpose of this method is testing the ability of this plugin to write the * complete set of files for the GTOPO30 format in a single zip package. * * @author Simone Giannecchini * * @source $URL$ */ public class GT30ZipWriterTest extends GT30TestBase { /** * DOCUMENT ME! * * @param name */ public GT30ZipWriterTest(String name) { super(name); } /** * Testing zipped-package writing capabilites. * * @throws Exception */ public void test() throws Exception { final URL statURL = TestData.getResource(this, this.fileName + ".DEM"); final AbstractGridFormat format = (AbstractGridFormat) new GTopo30FormatFactory() .createFormat(); final TileCache defaultInstance = JAI.getDefaultInstance() .getTileCache(); defaultInstance.setMemoryCapacity(1024 * 1024 * 64); defaultInstance.setMemoryThreshold(1.0f); final GTopo30WriteParams wp = new GTopo30WriteParams(); wp.setCompressionMode(GTopo30WriteParams.MODE_EXPLICIT); wp.setCompressionType("ZIP"); ParameterValueGroup params = format.getWriteParameters(); params.parameter( AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString()) .setValue(wp); if (format.accepts(statURL)) { // get a reader final GridCoverageReader reader = format.getReader(statURL); // get a grid coverage final GridCoverage2D gc = ((GridCoverage2D) reader.read(null)); // preparing to write it down File testDir = TestData.file(this, ""); newDir = new File(testDir.getAbsolutePath() + "/newDir"); newDir.mkdir(); final GridCoverageWriter writer = format.getWriter(newDir); writer.write(gc, (GeneralParameterValue[]) params.values().toArray( new GeneralParameterValue[1])); gc.dispose(false); } } public static final void main(String[] args) throws Exception { junit.textui.TestRunner.run((GT30ZipWriterTest.class)); } }