1
2
3
4
5
6 package net.kwfgrid.gwui;
7
8 import net.kwfgrid.gworkflowdl.structure.*;
9 import net.kwfgrid.gworkflowdl.protocol.structure.*;
10 import net.kwfgrid.gworkflowdl.protocol.IMethodCallStrategy;
11 import net.kwfgrid.gworkflowdl.protocol.DefaultMethodCallStrategyExt;
12 import net.kwfgrid.gworkflowdl.protocol.Protocol;
13
14 import org.apache.log4j.Logger;
15
16 import java.util.*;
17 import java.rmi.RemoteException;
18
19 /***
20 This implementation of WorkflowInstanceManager handles a single ProtocolWorkflow instance.
21 The workflow instance is static. This class also configures the GWorkflowDL protocol and factory.
22 */
23 public class SingleStaticProtocolWorkflowInstanceManager implements WorkflowInstanceManager {
24 private static final Logger logger = Logger.getLogger(SingleStaticProtocolWorkflowInstanceManager.class);
25
26 static {
27 logger.info("Initializing GWorkflowDL factory...");
28
29
30 IMethodCallStrategy defaults = new DefaultMethodCallStrategyExt();
31 Protocol.setDefaultMethodCallStrategy(defaults);
32
33 Creator creator = new DefaultProtocolCreator(new DefaultCreator());
34 Factory.setCreator(creator);
35
36 logger.info("Initializing GWorkflowDL factory READY.");
37 }
38
39 public SingleStaticProtocolWorkflowInstanceManager() {
40
41 }
42
43 public void setWorkflowID(WorkflowGroup group, String newworkflowid) {
44 if (newworkflowid != null) {
45 ProtocolWorkflow workflow = (ProtocolWorkflow)Factory.newWorkflow(newworkflowid);
46 group.setProperty(WorkflowGroup.ACTIVE_WORKFLOW_DOCUMENT_KEY, workflow);
47 } else {
48 group.setProperty(WorkflowGroup.ACTIVE_WORKFLOW_DOCUMENT_KEY, null);
49 }
50 }
51 }