View Javadoc

1   /*
2    * Copyright (c) 2005, The K-Wf Grid Consortium
3    * Fraunhofer Institute for Computer Architecture and Software Technology
4    * See http://www.kwfgrid.eu and http://www.first.fraunhofer.de for more details.
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  	// configure factory
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  }