* @throws GraphException
* @throws ComponentRegistryException
*/
public Workflow createMathWorkflow() throws ComponentException,
GraphException, ComponentRegistryException {
Workflow workflow = new Workflow();
// Name, description
workflow.setName("Math workflow");
workflow.setDescription("A workflow that calculates (a + b) * c.");
Graph graph = workflow.getGraph();
// Adder node
Component adderComp = this.componentRegistry
.getComponent(Adder.WSDL_PATH);
Node adderNode1 = workflow.addNode(adderComp);
adderNode1.setPosition(new Point(170, 50));
// Multiplier node
Component multiComp = this.componentRegistry
.getComponent(Multiplier.WSDL_PATH);
Node multiNode = workflow.addNode(multiComp);
multiNode.setPosition(new Point(320, 130));
// Input node 1
InputNode inputNode1 = (InputNode) workflow
.addNode(this.inputComponent);
inputNode1.setPosition(new Point(20, 30));
// Input node 2
InputNode inputNode2 = (InputNode) workflow
.addNode(this.inputComponent);
inputNode2.setPosition(new Point(20, 100));
// Input node 3
InputNode inputNode3 = (InputNode) workflow
.addNode(this.inputComponent);
inputNode3.setPosition(new Point(20, 170));
// Output
OutputNode outputNode = (OutputNode) workflow
.addNode(this.outputComponent);
outputNode.setPosition(new Point(500, 130));
// Connect ports
graph.addEdge(inputNode1.getOutputPort(0), adderNode1.getInputPort(0));