package org.uncertweb.ps.test.process; import java.util.Arrays; import java.util.List; import org.uncertweb.ps.data.DataDescription; import org.uncertweb.ps.data.Metadata; import org.uncertweb.ps.data.ProcessInputs; import org.uncertweb.ps.data.ProcessOutputs; import org.uncertweb.ps.data.SingleOutput; import org.uncertweb.ps.process.AbstractProcess; import org.uncertweb.ps.process.ProcessException; import com.vividsolutions.jts.geom.Polygon; public class BufferPolygonProcess extends AbstractProcess { public List<String> getInputIdentifiers() { return Arrays.asList(new String[] { "Polygon", "Distance" }); } public List<String> getOutputIdentifiers() { return Arrays.asList(new String[] { "BufferedPolygon" }); } public DataDescription getInputDataDescription(String identifier) { if (identifier.equals("Polygon")) { return new DataDescription(Polygon.class); } else { return new DataDescription(Double.class); } } public DataDescription getOutputDataDescription(String identifier) { return new DataDescription(Polygon.class); } public List<Metadata> getInputMetadata(String identifier) { // TODO Auto-generated method stub return null; } public List<Metadata> getOutputMetadata(String identifier) { // TODO Auto-generated method stub return null; } public ProcessOutputs run(ProcessInputs inputs) throws ProcessException { // get polygon and distance Polygon polygon = inputs.get("Polygon").getAsSingleInput().getObjectAs(Polygon.class); double distance = inputs.get("Distance").getAsSingleInput().getObjectAs(Double.class); // buffer Polygon buffered = (Polygon)polygon.buffer(distance); // all done ProcessOutputs outputs = new ProcessOutputs(); outputs.add(new SingleOutput("BufferedPolygon", buffered)); return outputs; } @Override public List<Metadata> getMetadata() { // TODO Auto-generated method stub return null; } }