From e99ed30f6cae36c5f3fa03007d991e67894a01bb Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 23 Jul 2013 09:41:43 +0200 Subject: More --- .../lifecycle/instance/CompositeActivity.java | 74 ++++++---------------- 1 file changed, 21 insertions(+), 53 deletions(-) (limited to 'src/main/java/com/c2kernel/lifecycle/instance/CompositeActivity.java') diff --git a/src/main/java/com/c2kernel/lifecycle/instance/CompositeActivity.java b/src/main/java/com/c2kernel/lifecycle/instance/CompositeActivity.java index 7ab9825..689fbb8 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/CompositeActivity.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/CompositeActivity.java @@ -1,7 +1,6 @@ package com.c2kernel.lifecycle.instance; import java.util.ArrayList; -import java.util.Vector; import com.c2kernel.common.AccessRightsException; import com.c2kernel.common.InvalidDataException; @@ -274,66 +273,34 @@ public class CompositeActivity extends Activity } /** + * @throws InvalidDataException * @see com.c2kernel.lifecycle.instance.WfVertex#run() */ @Override - public void run(AgentPath agent) throws ScriptingEngineException + public void run(AgentPath agent, int itemSysKey) throws InvalidDataException { - super.run(agent); - if (getChildrenGraphModel().getStartVertex() != null && getMachine().getCurrentState() != States.FINISHED) + super.run(agent, itemSysKey); + if (getChildrenGraphModel().getStartVertex() != null && !getStateMachine().getState(state).isFinished()) { WfVertex first = (WfVertex) getChildrenGraphModel().getStartVertex(); - first.run(agent); + first.run(agent, itemSysKey); } } @Override - public void runNext(AgentPath agent) throws ScriptingEngineException + public void runNext(AgentPath agent, int itemSysKey) throws InvalidDataException { - if (getMachine().state != States.FINISHED) + if (!getStateMachine().getState(state).isFinished()) getMachine().traverse(Transitions.COMPLETE); - super.runNext(agent); - } - - /** - * @see com.c2kernel.lifecycle.instance.Activity#query(com.c2kernel.common.AgentInfo, - * java.lang.String, boolean) - */ - @Override - public Activity[] query(AgentPath agent, int stateID, boolean filter) - { - Vector steps = new Vector(); - Activity[] returnArray = null; - for (int i = 0; i < getChildren().length; i++) - { - if (getChildren()[i] instanceof Activity) - steps.addElement(((Activity) getChildren()[i]).query(agent, stateID, filter)); - } - int j = 0; - for (int i = 0; i < steps.size(); i++) - j += steps.elementAt(i).length; - Activity[] tmp = super.query(agent, stateID, filter); - if (tmp.length == 1) - { - returnArray = new Activity[j + 1]; - returnArray[j] = tmp[0]; - } else - returnArray = new Activity[j]; - j = 0; - for (int i = 0; i < steps.size(); i++) - { - Activity[] stepArray = steps.elementAt(i); - for (Activity element : stepArray) - returnArray[j++] = element; - } - return returnArray; + super.runNext(agent, itemSysKey); } + /** * @see com.c2kernel.lifecycle.instance.Activity#calculateJobs() */ @Override - public ArrayList calculateJobs(AgentPath agent, boolean recurse) + public ArrayList calculateJobs(AgentPath agent, int itemSysKey, boolean recurse) { ArrayList jobs = new ArrayList(); boolean childActive = false; @@ -342,16 +309,16 @@ public class CompositeActivity extends Activity if (getChildren()[i] instanceof Activity) { Activity child = (Activity) getChildren()[i]; - jobs.addAll(child.calculateJobs(agent, recurse)); + jobs.addAll(child.calculateJobs(agent, itemSysKey, recurse)); childActive |= child.active; } if (!childActive) - jobs.addAll(super.calculateJobs(agent, recurse)); + jobs.addAll(super.calculateJobs(agent, itemSysKey, recurse)); return jobs; } @Override - public ArrayList calculateAllJobs(AgentPath agent, boolean recurse) + public ArrayList calculateAllJobs(AgentPath agent, int itemSysKey, boolean recurse) { ArrayList jobs = new ArrayList(); if (recurse) @@ -359,9 +326,9 @@ public class CompositeActivity extends Activity if (getChildren()[i] instanceof Activity) { Activity child = (Activity) getChildren()[i]; - jobs.addAll(child.calculateAllJobs(agent, recurse)); + jobs.addAll(child.calculateAllJobs(agent, itemSysKey, recurse)); } - jobs.addAll(super.calculateAllJobs(agent, recurse)); + jobs.addAll(super.calculateAllJobs(agent, itemSysKey, recurse)); return jobs; } @@ -429,14 +396,14 @@ public class CompositeActivity extends Activity public void reinit(int idLoop) { super.reinit(idLoop); - if (getChildrenGraphModel().getStartVertex() != null && getMachine().getCurrentState() != States.FINISHED) + if (getChildrenGraphModel().getStartVertex() != null && !getStateMachine().getState(state).isFinished()) ((WfVertex) getChildrenGraphModel().getStartVertex()).reinit(idLoop); } @Override public void request(AgentPath agent, int itemSysKey, int transitionID, String requestData) throws AccessRightsException, InvalidTransitionException, InvalidDataException, ObjectAlreadyExistsException { - if (getChildrenGraphModel().getStartVertex() != null && getMachine().getCurrentState() != States.FINISHED && transitionID == Transitions.START) + if (getChildrenGraphModel().getStartVertex() != null && !getStateMachine().getState(state).isFinished() && transitionID == Transitions.START) try { ((WfVertex) getChildrenGraphModel().getStartVertex()).run(agent); @@ -446,13 +413,14 @@ public class CompositeActivity extends Activity } super.request(agent, itemSysKey, transitionID, requestData); } - public void refreshJobs() + + public void refreshJobs(int itemSysKey) { GraphableVertex[] children = getChildren(); for (GraphableVertex element : children) if (element instanceof CompositeActivity) - ((CompositeActivity) element).refreshJobs(); + ((CompositeActivity) element).refreshJobs(itemSysKey); else if (element instanceof Activity) - ((Activity) element).pushJobsToAgents(); + ((Activity) element).pushJobsToAgents(itemSysKey); } } \ No newline at end of file -- cgit v1.2.3