summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/lifecycle/instance/Workflow.java
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2013-11-18 09:48:03 +0100
committerAndrew Branson <andrew.branson@cern.ch>2013-11-18 17:25:00 +0100
commitd43164830403245353080f5d6f838ed9f56d9a35 (patch)
treed880c9103fb61f5ef39f1723c4dbd634d5d83b67 /src/main/java/com/c2kernel/lifecycle/instance/Workflow.java
parent37a3c3867cb4c7705065ed1d079bdac4f3f52f50 (diff)
3.0-SNAPSHOT (Will be first open source version)
New StateMachine desc IssueID #28
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle/instance/Workflow.java')
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/Workflow.java46
1 files changed, 26 insertions, 20 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/Workflow.java b/src/main/java/com/c2kernel/lifecycle/instance/Workflow.java
index 13a7db6..e3a6b7f 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/Workflow.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/Workflow.java
@@ -6,16 +6,15 @@ import com.c2kernel.common.InvalidDataException;
import com.c2kernel.common.InvalidTransitionException;
import com.c2kernel.common.ObjectAlreadyExistsException;
import com.c2kernel.common.ObjectNotFoundException;
+import com.c2kernel.common.PersistencyException;
import com.c2kernel.entity.C2KLocalObject;
import com.c2kernel.entity.agent.Job;
import com.c2kernel.events.History;
import com.c2kernel.graph.model.GraphPoint;
import com.c2kernel.graph.model.TypeNameAndConstructionInfo;
import com.c2kernel.lifecycle.instance.predefined.PredefinedStepContainer;
-import com.c2kernel.lifecycle.instance.stateMachine.Transitions;
import com.c2kernel.lookup.AgentPath;
import com.c2kernel.persistency.ClusterStorage;
-import com.c2kernel.scripting.ScriptingEngineException;
import com.c2kernel.utils.Language;
import com.c2kernel.utils.Logger;
/**
@@ -45,7 +44,6 @@ public class Workflow extends CompositeActivity implements C2KLocalObject
*/
public Workflow()
{
- getProperties().put("ItemSystemKey", null);
}
public Workflow(CompositeActivity domain) {
@@ -96,14 +94,15 @@ public class Workflow extends CompositeActivity implements C2KLocalObject
* @throws AccessRightsException
* @throws InvalidTransitionException
* @throws InvalidDataException
+ * @throws PersistencyException
*/
//requestData is xmlstring
- public void requestAction(AgentPath agent, String stepPath, int transitionID, String requestData)
- throws ObjectNotFoundException, AccessRightsException, InvalidTransitionException, InvalidDataException, ObjectAlreadyExistsException
+ public void requestAction(AgentPath agent, String stepPath, int itemSysKey, int transitionID, String requestData)
+ throws ObjectNotFoundException, AccessRightsException, InvalidTransitionException, InvalidDataException, ObjectAlreadyExistsException, PersistencyException
{
- Logger.msg(3, "Action: " + Transitions.getTransitionName(transitionID) + " " + stepPath + " by " + agent.getAgentName());
+ Logger.msg(3, "Action: " + transitionID + " " + stepPath + " by " + agent.getAgentName());
if (search(stepPath) != null)
- ((Activity) search(stepPath)).request(agent, transitionID, requestData);
+ ((Activity) search(stepPath)).request(agent, itemSysKey, transitionID, requestData);
else
throw new ObjectNotFoundException(stepPath + " not found", "");
}
@@ -167,35 +166,42 @@ public class Workflow extends CompositeActivity implements C2KLocalObject
* Method initialise.
*
* @param systemKey
+ * @throws InvalidDataException
+ * @throws ObjectNotFoundException
+ * @throws AccessRightsException
+ * @throws InvalidTransitionException
*/
- public void initialise(int systemKey, AgentPath agent)
+ public void initialise(int systemKey, AgentPath agent) throws InvalidDataException, InvalidTransitionException, AccessRightsException, ObjectNotFoundException
{
- this.getProperties().put("ItemSystemKey", new Integer(systemKey));
try
{
- runfirst(agent);
+ runFirst(agent, systemKey);
}
- catch (ScriptingEngineException ex)
+ catch (InvalidDataException ex)
{
Logger.error(ex);
+ } catch (PersistencyException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
}
}
- /**
- * Method calculateJobs.
- *
- * @param type
- * @return JobList
- */
+
/**
* if type = 0 only domain steps will be queried if type = 1 only predefined steps will be queried else both will be queried
+ * @param agent
+ * @param itemSysKey
+ * @param type
+ * @return
+ * @throws ObjectNotFoundException
+ * @throws InvalidDataException
*/
- public ArrayList<Job> calculateJobs(AgentPath agent, int type)
+ public ArrayList<Job> calculateJobs(AgentPath agent, int itemSysKey, int type) throws ObjectNotFoundException, InvalidDataException
{
ArrayList<Job> jobs = new ArrayList<Job>();
if (type != 1)
- jobs.addAll(((CompositeActivity) search("workflow/domain")).calculateJobs(agent, true));
+ jobs.addAll(((CompositeActivity) search("workflow/domain")).calculateJobs(agent, itemSysKey, true));
if (type != 0)
- jobs.addAll(((CompositeActivity) search("workflow/predefined")).calculateJobs(agent, true));
+ jobs.addAll(((CompositeActivity) search("workflow/predefined")).calculateJobs(agent, itemSysKey, true));
return jobs;
}
/**