From d43164830403245353080f5d6f838ed9f56d9a35 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Mon, 18 Nov 2013 09:48:03 +0100 Subject: 3.0-SNAPSHOT (Will be first open source version) New StateMachine desc IssueID #28 --- .../com/c2kernel/lifecycle/instance/Workflow.java | 46 ++++++++++++---------- 1 file changed, 26 insertions(+), 20 deletions(-) (limited to 'src/main/java/com/c2kernel/lifecycle/instance/Workflow.java') 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 calculateJobs(AgentPath agent, int type) + public ArrayList calculateJobs(AgentPath agent, int itemSysKey, int type) throws ObjectNotFoundException, InvalidDataException { ArrayList jobs = new ArrayList(); 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; } /** -- cgit v1.2.3