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; public class SumProcess extends AbstractProcess { public List<String> getInputIdentifiers() { return Arrays.asList(new String[] { "A", "B" }); } public List<String> getOutputIdentifiers() { return Arrays.asList(new String[] { "Result" }); } public DataDescription getInputDataDescription(String identifier) { if (identifier.equals("A")) { return new DataDescription(Double.class); } else { return new DataDescription(Double.class, 1, Integer.MAX_VALUE); } } public DataDescription getOutputDataDescription(String identifier) { return new DataDescription(Double.class); } public ProcessOutputs run(ProcessInputs inputs) throws ProcessException { // get a and b double a = inputs.get("A").getAsSingleInput().getObjectAs(Double.class); List<Double> b = inputs.get("B").getAsMultipleInput().getObjectsAs(Double.class); // calculate double result = a; for (double num : b) { result += num; } // return ProcessOutputs outputs = new ProcessOutputs(); outputs.add(new SingleOutput("Result", result)); return outputs; } @Override public List<Metadata> getInputMetadata(String arg0) { Metadata description; if (arg0.equals("A")) { description = new Metadata("description", "The original number"); } else { description = new Metadata("description", "The number(s) to add to the original"); } return Arrays.asList(new Metadata[] { description }); } @Override public List<Metadata> getOutputMetadata(String arg0) { Metadata description = new Metadata("description", "The result of the sum"); return Arrays.asList(new Metadata[] { description }); } @Override public List<Metadata> getMetadata() { Metadata description = new Metadata("description", "Sum two numbers"); return Arrays.asList(new Metadata[] { description }); } }