[jbpm-commits] JBoss JBPM SVN: r1594 - jbpm3/trunk/modules/jpdl/core/src/main/java/org/jbpm/integration/model.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Jul 11 12:11:52 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-07-11 12:11:52 -0400 (Fri, 11 Jul 2008)
New Revision: 1594

Modified:
   jbpm3/trunk/modules/jpdl/core/src/main/java/org/jbpm/integration/model/ProcessAdapter.java
Log:
Init transitions

Modified: jbpm3/trunk/modules/jpdl/core/src/main/java/org/jbpm/integration/model/ProcessAdapter.java
===================================================================
--- jbpm3/trunk/modules/jpdl/core/src/main/java/org/jbpm/integration/model/ProcessAdapter.java	2008-07-11 16:11:46 UTC (rev 1593)
+++ jbpm3/trunk/modules/jpdl/core/src/main/java/org/jbpm/integration/model/ProcessAdapter.java	2008-07-11 16:11:52 UTC (rev 1594)
@@ -23,15 +23,20 @@
 
 // $Id$
 
+import java.util.Iterator;
 import java.util.List;
 
 import org.jboss.bpm.InvalidProcessException;
 import org.jboss.bpm.model.FlowObject;
+import org.jboss.bpm.model.MultipleOutFlowSupport;
 import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.SequenceFlow;
+import org.jboss.bpm.model.SingleOutFlowSupport;
 import org.jboss.bpm.model.Task;
 import org.jbpm.graph.def.Action;
 import org.jbpm.graph.def.Event;
 import org.jbpm.graph.def.Node;
+import org.jbpm.graph.def.Transition;
 import org.jbpm.graph.node.EndState;
 import org.jbpm.graph.node.StartState;
 import org.jbpm.graph.node.State;
@@ -65,10 +70,12 @@
       if (oldNode instanceof StartState)
       {
         flowObject = new StartEventImpl(apiProc, oldNode);
+        initTranstions(flowObject, oldNode);
       }
       else if (oldNode instanceof EndState)
       {
         flowObject = new EndEventImpl(apiProc, oldNode);
+        initTranstions(flowObject, oldNode);
       }
       else if (oldNode instanceof State)
       {
@@ -90,6 +97,7 @@
           delegate = (Task)obj;
         }
         flowObject = new TaskImpl(apiProc, oldNode, delegate);
+        initTranstions(flowObject, oldNode);
       }
       else
       {
@@ -97,5 +105,35 @@
       }
       return flowObject;
     }
+
+    private static void initTranstions(FlowObject flowObject, Node oldNode)
+    {
+      if (flowObject instanceof SingleOutFlowSupport)
+      {
+        SingleOutFlowSupport sof = (SingleOutFlowSupport)flowObject;
+        List outTrans = oldNode.getLeavingTransitions();
+        if (outTrans != null && outTrans.size() > 0)
+        {
+          Transition trans = (Transition)outTrans.get(0);
+          SequenceFlow flow = new SequenceFlow(trans.getTo().getName());
+          sof.setOutFlow(flow);
+        }
+      }
+      if (flowObject instanceof MultipleOutFlowSupport)
+      {
+        MultipleOutFlowSupport mof = (MultipleOutFlowSupport)flowObject;
+        List outTrans = oldNode.getLeavingTransitions();
+        if (outTrans != null && outTrans.size() > 0)
+        {
+          Iterator it = outTrans.iterator();
+          while (it.hasNext())
+          {
+            Transition trans = (Transition)it.next();
+            SequenceFlow flow = new SequenceFlow(trans.getTo().getName());
+            mof.addOutFlow(flow);
+          }
+        }
+      }
+    }
   }
 }




More information about the jbpm-commits mailing list