package org.geoserver.wps;
import java.util.HashMap;
import java.util.Map;
import org.geoserver.wps.process.ByteArrayRawData;
import org.geoserver.wps.process.RawData;
import org.geoserver.wps.process.StringRawData;
import org.geotools.process.ProcessFactory;
import org.geotools.process.factory.AnnotatedBeanProcessFactory;
import org.geotools.process.factory.DescribeParameter;
import org.geotools.process.factory.DescribeProcess;
import org.geotools.process.factory.DescribeResult;
import org.geotools.process.factory.DescribeResults;
import org.geotools.util.SimpleInternationalString;
/**
* A test process with multiple raw outputs
*
* @author Andrea Aime - GeoSolutions
*
*/
@DescribeProcess(title = "MultiRaw", description = "Process used to test processes with multiple raw outputs")
public class MultiRawProcess {
static final ProcessFactory getFactory() {
return new MultiRawProcessFactory();
}
private static class MultiRawProcessFactory extends AnnotatedBeanProcessFactory {
public MultiRawProcessFactory() {
super(new SimpleInternationalString("Multiraw"), "gs", MultiRawProcess.class);
}
}
@DescribeResults({
@DescribeResult(name = "text", description = "Text output", meta = { "mimeTypes=text/plain" }, type = RawData.class),
@DescribeResult(name = "binary", description = "Binary output", meta = {
"mimeTypes=application/zip,image/png", "chosenMimeType=binaryMimeType" }, type = RawData.class),
@DescribeResult(name = "literal", description = "A string", type = String.class) })
public Map<String, Object> execute(@DescribeParameter(name = "id") String id,
@DescribeParameter(name = "binaryMimeType", min = 0) String binaryMimeType)
throws Exception {
Map<String, Object> result = new HashMap<String, Object>();
result.put("literal", id);
result.put("text", new StringRawData("This is the raw text", "text/plain"));
result.put("binary", new ByteArrayRawData(new byte[100], binaryMimeType));
return result;
}
}