package main.java.parser.taverna; import java.lang.invoke.WrongMethodTypeException; import java.util.List; import main.java.bolts.BeanshellBolt; import main.java.bolts.RestBolt; import main.java.bolts.WorkberchGenericBolt; import main.java.bolts.XPathBolt; import main.java.parser.model.WorkberchProcessorNode; import main.java.utils.constants.TavernaNodeType; import com.fasterxml.jackson.databind.JsonNode; public class WorkberchTavernaNode extends WorkberchProcessorNode { private TavernaNodeType nodeType; private JsonNode config; public WorkberchTavernaNode(final String name, final List<String> outputs, final List<String> inputs) { super(name, outputs, inputs); } public TavernaNodeType getNodeType() { return nodeType; } public void setNodeType(final TavernaNodeType nodeType) { this.nodeType = nodeType; } public JsonNode getConfig() { return config; } public void setConfig(final JsonNode config) { this.config = config; } @Override public WorkberchGenericBolt buildBolt(final String guid) { WorkberchGenericBolt ret = null; switch (nodeType) { case XPATH: ret = new XPathBolt(guid, getInputs(), getOutputs(), config); break; case REST: ret = new RestBolt(guid, getInputs(), getOutputs(), config); break; case BEANSHELL: ret = new BeanshellBolt(guid, getInputs(), getOutputs(), config); break; default: throw new WrongMethodTypeException("No se ha implementado el tipo de processor de taverna: " + nodeType); } return ret; } }