From 254ee6f47eebfc00462c10756a92066e82cc1a96 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 21 Jun 2011 15:46:02 +0200 Subject: Initial commit --- .../instance/gui/model/WfEdgeFactory.java | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 source/com/c2kernel/lifecycle/instance/gui/model/WfEdgeFactory.java (limited to 'source/com/c2kernel/lifecycle/instance/gui/model/WfEdgeFactory.java') diff --git a/source/com/c2kernel/lifecycle/instance/gui/model/WfEdgeFactory.java b/source/com/c2kernel/lifecycle/instance/gui/model/WfEdgeFactory.java new file mode 100755 index 0000000..f79d312 --- /dev/null +++ b/source/com/c2kernel/lifecycle/instance/gui/model/WfEdgeFactory.java @@ -0,0 +1,34 @@ +package com.c2kernel.lifecycle.instance.gui.model; + +import com.c2kernel.graph.model.DirectedEdge; +import com.c2kernel.graph.model.EdgeFactory; +import com.c2kernel.graph.model.GraphModelManager; +import com.c2kernel.graph.model.TypeNameAndConstructionInfo; +import com.c2kernel.graph.model.Vertex; +import com.c2kernel.lifecycle.instance.WfVertex; + +public class WfEdgeFactory implements EdgeFactory +{ + public void create + ( + GraphModelManager graphModelManager, + Vertex origin, + Vertex terminus, + TypeNameAndConstructionInfo typeNameAndConstructionInfo + ) + { + if ( validCreation( graphModelManager, origin, terminus ) ) + ((WfVertex)origin).addNext((WfVertex)terminus); + + } + + private boolean validCreation( GraphModelManager graphModelManager, Vertex origin, Vertex terminus ) + { + DirectedEdge[] connectingEdgesAToB = graphModelManager.getModel().getConnectingEdges( origin.getID() , terminus.getID() ); + DirectedEdge[] connectingEdgesBToA = graphModelManager.getModel().getConnectingEdges( terminus.getID(), origin.getID() ); + + + return ( origin != terminus ) && ( connectingEdgesAToB.length == 0 ) && ( connectingEdgesBToA.length == 0 ); + } +} + -- cgit v1.2.3