/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2014 MangoSystem * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.wps.spatialstatistics.ppio; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.StringReader; import java.io.Writer; import java.util.logging.Level; import java.util.logging.Logger; import org.geoserver.wps.ppio.CDataPPIO; import org.geotools.geojson.geom.GeometryJSON; import org.geotools.util.logging.Logging; import com.vividsolutions.jts.geom.Geometry; public class GeometryGeoJSONPPIO extends CDataPPIO { protected static final Logger LOGGER = Logging.getLogger(GeometryGeoJSONPPIO.class); protected GeometryGeoJSONPPIO() { super(Geometry.class, Geometry.class, "application/json"); } @Override public Object decode(InputStream input) throws Exception { return new GeometryJSON().read(new InputStreamReader(input)); } @Override public Object decode(String input) throws Exception { return new GeometryJSON().read(new StringReader(input)); } @Override public void encode(Object value, OutputStream os) throws IOException { Writer writer = new OutputStreamWriter(os); try { GeometryJSON geometryJson = new GeometryJSON(); geometryJson.write((Geometry) value, writer); } catch (IOException e) { LOGGER.log(Level.FINER, e.getMessage(), e); } finally { writer.flush(); } } @Override public String getFileExtension() { return "json"; } }