diff options
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle/instance/CompositeActivity.java')
| -rw-r--r-- | src/main/java/com/c2kernel/lifecycle/instance/CompositeActivity.java | 74 |
1 files changed, 21 insertions, 53 deletions
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<Activity[]> steps = new Vector<Activity[]>();
- 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<Job> calculateJobs(AgentPath agent, boolean recurse)
+ public ArrayList<Job> calculateJobs(AgentPath agent, int itemSysKey, boolean recurse)
{
ArrayList<Job> jobs = new ArrayList<Job>();
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<Job> calculateAllJobs(AgentPath agent, boolean recurse)
+ public ArrayList<Job> calculateAllJobs(AgentPath agent, int itemSysKey, boolean recurse)
{
ArrayList<Job> jobs = new ArrayList<Job>();
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 |
