1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.kuali.rice.kew.engine.transition;
18
19 import org.kuali.rice.kew.engine.RouteHelper;
20 import org.kuali.rice.kew.engine.node.RouteNode;
21 import org.kuali.rice.kew.engine.node.RouteNodeInstance;
22 import org.kuali.rice.kew.exception.WorkflowException;
23
24
25
26
27
28
29
30
31
32
33 public class TransitionEngineFactory {
34
35 public static TransitionEngine createTransitionEngine(RouteNodeInstance nodeInstance) throws Exception {
36 RouteHelper helper = new RouteHelper();
37 RouteNode routeNode = nodeInstance.getRouteNode();
38 TransitionEngine engine = null;
39 if (helper.isSimpleNode(routeNode)) {
40 engine = new SimpleTransitionEngine();
41 } else if (helper.isSplitNode(routeNode)) {
42 engine = new SplitTransitionEngine();
43 } else if (helper.isJoinNode(routeNode)) {
44 engine = new JoinTransitionEngine();
45 } else if (helper.isDynamicNode(routeNode)) {
46 engine = new DynamicTransitionEngine();
47 } else if (helper.isSubProcessNode(routeNode)) {
48 engine = new SubProcessTransitionEngine();
49 } else {
50 throw new WorkflowException("Could not locate transition engine for node " + routeNode.getNodeType());
51 }
52 engine.setRouteHelper(helper);
53 return engine;
54 }
55
56 }