Package org.geoserver.wcs.responses

Source Code of org.geoserver.wcs.responses.GTopo30CoverageResponseDelegate

/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.wcs.responses;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.zip.ZipOutputStream;

import org.geoserver.config.GeoServer;
import org.geoserver.platform.ServiceException;
import org.geotools.coverage.grid.GridCoverage2D;
import org.geotools.gce.gtopo30.GTopo30Writer;
import org.opengis.coverage.grid.GridCoverageWriter;

/**
* Encoder for gtopo format
* @author Simone Giannecchini, GeoSolutions SAS
*
*/
public class GTopo30CoverageResponseDelegate extends BaseCoverageResponseDelegate implements CoverageResponseDelegate {


    @SuppressWarnings("serial")
    public GTopo30CoverageResponseDelegate(GeoServer geoserver) {
        super(
                geoserver,
                Arrays.asList("GTopo30"), //output formats
                new HashMap<String, String>(){ // file extensions
                    {
                        put("GTopo30", "zip");
                        put("application/gtopo30", "zip");
                    }
                },
                new HashMap<String, String>(){ //mime types
                    {
                        put("GTopo30", "application/gtopo30");
                    }
                })
    }

    /*
     * (non-Javadoc)
     *
     * @see org.vfny.geoserver.wcs.responses.CoverageResponseDelegate#encode(java.io.OutputStream)
     */
  public void encode(GridCoverage2D sourceCoverage, String outputFormat, Map<String,String> econdingParameters, OutputStream output) throws ServiceException, IOException {
        // creating a zip outputstream
        final ZipOutputStream outZ = new ZipOutputStream(output);
        output = outZ;

        // creating a writer
        final GridCoverageWriter writer = new GTopo30Writer(outZ);

        try {
            // writing
            writer.write(sourceCoverage, null);
        } finally {
            try {
                // freeing everything
                writer.dispose();
            } catch (Throwable e) {
                // TODO: handle exception
            }
            sourceCoverage.dispose(false);
        }
    }
}
TOP

Related Classes of org.geoserver.wcs.responses.GTopo30CoverageResponseDelegate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.