diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2013-10-25 17:27:29 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2013-10-25 17:27:29 +0200 |
| commit | 0f892332b19ba8741a7db66a5c4daa386b2b5c1e (patch) | |
| tree | ed0733ed83862bf3bae1aa1c2cccec4d266e4813 /src/main/java/com/c2kernel/lifecycle/instance | |
| parent | cf28baaf82d0941f938444bda5b39440b944ddfb (diff) | |
Changes and refactoring to gui requirements
Used descriptions must use an integer version.
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle/instance')
6 files changed, 44 insertions, 15 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java index 49541ad..182882c 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java @@ -78,7 +78,7 @@ public class Activity extends WfVertex String name = (String)getProperties().get("StateMachineName");
String version = (String)getProperties().get("StateMachineVersion");
try {
- machine = LocalObjectLoader.getStateMachine(name, version);
+ machine = LocalObjectLoader.getStateMachine(name, Integer.parseInt(version));
} catch (ObjectNotFoundException ex) {
Logger.error(ex);
throw new InvalidDataException("Error loading state machine '"+name+"' v"+version);
@@ -148,9 +148,11 @@ public class Activity extends WfVertex try {
History hist = (History) Gateway.getStorage().get(itemSysKey, ClusterStorage.HISTORY, this);
if (storeOutcome)
- newEvent = hist.addEvent(agent.getAgentName(), usedRole, transitionID, getName(), getPath(), getType(), schema.docType, schema.docVersion, viewName, state);
+ newEvent = hist.addEvent(agent.getAgentName(), usedRole, getName(), getPath(), getType(), schema.docType, schema.docVersion,
+ getStateMachine().getName(), getStateMachine().getVersion(), transition, viewName);
else
- newEvent = hist.addEvent(agent.getAgentName(), usedRole, transitionID, getName(), getPath(), getType(), state);
+ newEvent = hist.addEvent(agent.getAgentName(), usedRole, getName(), getPath(), getType(),
+ getStateMachine().getName(), getStateMachine().getVersion(), transition);
Logger.msg(7, "Activity::auditEvent() - Event:" + newEvent.getName() + " was added to the AuditTrail");
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java index 5c600e2..2e3d652 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java @@ -60,7 +60,7 @@ public class CreateItemFromDescription extends PredefinedStep String domPath = input[1];
CompositeActivityDef wfDef;
String wfDefName = null;
- String wfDefVer = null;
+ int wfDefVer = -1;
if (input.length > 2) // override wf
wfDefName = input[2];
@@ -93,14 +93,14 @@ public class CreateItemFromDescription extends PredefinedStep // get the first member from the wf collection
CollectionMember wfMember = members.get(0);
wfDefName = wfMember.resolveEntity().getName();
- wfDefVer = (String)wfMember.getProperties().get("Version");
+ wfDefVer = (Integer)wfMember.getProperties().get("Version");
}
}
// load workflow def
if (wfDefName == null)
throw new InvalidDataException("No workflow given or defined", "");
- if (wfDefVer == null)
+ if (wfDefVer == -1)
throw new InvalidDataException("No workflow def version given","");
try {
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/Import.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/Import.java index 44ab041..5c7dc0e 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/Import.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/Import.java @@ -73,7 +73,7 @@ public class Import extends PredefinedStep TransactionManager storage = Gateway.getStorage();
History hist = new History(itemSysKey, this);
- Event event = hist.addEvent(agent.getAgentName(), getCurrentAgentRole(), transitionID, getName(), getPath(), getType(), schemaName, schemaVersion, viewpoint, getState(), timestamp);
+ Event event = hist.addEvent(agent.getAgentName(), getCurrentAgentRole(), getName(), getPath(), getType(), schemaName, schemaVersion, getStateMachine().getName(), getStateMachine().getVersion(), getStateMachine().getTransition(transitionID), viewpoint, timestamp);
try {
storage.put(itemSysKey, new Outcome(event.getID(), requestData, schemaName, schemaVersion), this);
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java index f089a83..dacb1a3 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java @@ -16,7 +16,7 @@ import com.c2kernel.entity.TraceableEntity; import com.c2kernel.events.Event;
import com.c2kernel.events.History;
import com.c2kernel.lifecycle.CompositeActivityDef;
-import com.c2kernel.lifecycle.instance.predefined.PredefinedStep;
+import com.c2kernel.lifecycle.instance.stateMachine.Transition;
import com.c2kernel.lookup.DomainPath;
import com.c2kernel.lookup.EntityPath;
import com.c2kernel.persistency.ClusterStorage;
@@ -86,7 +86,7 @@ public class NewItem extends ModuleImport { try {
// find workflow def
- CompositeActivityDef compact = (CompositeActivityDef)LocalObjectLoader.getActDef(workflow, "0");
+ CompositeActivityDef compact = (CompositeActivityDef)LocalObjectLoader.getActDef(workflow, 0);
newItem.initialise(
agentId,
Gateway.getMarshaller().marshall(new PropertyArrayList(properties)),
@@ -129,7 +129,8 @@ public class NewItem extends ModuleImport { }
// write new view/outcome/event
- Event newEvent = hist.addEvent("system", "Admin", PredefinedStep.DONE, "Import", "Import", "Import", thisOutcome.schema, thisOutcome.version, thisOutcome.viewname, PredefinedStep.AVAILABLE);
+ Transition predefDone = new Transition(0, "Done", 0, 0);
+ Event newEvent = hist.addEvent("system", "Admin", "Import", "Import", "Import", thisOutcome.schema, thisOutcome.version, "PredefinedStep", 0, predefDone, thisOutcome.viewname);
newOutcome.setID(newEvent.getID());
impView.setEventId(newEvent.getID());
try {
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java index f9cf144..1506701 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java @@ -16,7 +16,7 @@ import com.c2kernel.utils.Logger; public class StateMachine implements DescriptionObject
{
public String name;
- public String version;
+ public int version;
private ArrayList<State> states;
private ArrayList<Transition> transitions;
@@ -92,7 +92,7 @@ public class StateMachine implements DescriptionObject }
@Override
- public String getVersion() {
+ public int getVersion() {
return version;
}
@@ -100,7 +100,7 @@ public class StateMachine implements DescriptionObject this.name = name;
}
- public void setVersion(String version) {
+ public void setVersion(int version) {
this.version = version;
}
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java index 9815889..01ede5a 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java @@ -40,6 +40,16 @@ public class Transition implements Serializable { public Transition() {
}
+
+ public Transition(int id, String name, int originStateId, int targetStateId) {
+ super();
+ this.id = id;
+ this.name = name;
+ this.originStateId = originStateId;
+ this.targetStateId = targetStateId;
+ }
+
+
public String getName() {
return name;
}
@@ -234,7 +244,9 @@ public class Transition implements Serializable { }
public boolean hasOutcome() {
- return outcome.schemaName!=null && outcome.schemaName.length()>0;
+ return outcome!=null
+ && outcome.schemaName!=null && outcome.schemaName.length()>0
+ && outcome.schemaVersion!=null && outcome.schemaVersion.length()>0;
}
public Schema getSchema(CastorHashMap actProps) throws InvalidDataException, ObjectNotFoundException {
@@ -249,7 +261,21 @@ public class Transition implements Serializable { return null;
}
+ public String getScriptName(CastorHashMap actProps) {
+ return resolveValue(script.scriptName, actProps);
+ }
+
+ public int getScriptVersion(CastorHashMap actProps) throws InvalidDataException {
+ try {
+ return Integer.parseInt(resolveValue(script.scriptVersion, actProps));
+ } catch (NumberFormatException ex) {
+ throw new InvalidDataException("Bad Script version number: "+script.scriptVersion+" ("+resolveValue(script.scriptVersion, actProps));
+ }
+ }
+
public boolean hasScript() {
- return script!=null && script.getScriptName() != null;
+ return script!=null
+ && script.scriptName!=null && script.scriptName.length()>0
+ && script.scriptVersion!=null && script.scriptVersion.length()>0;
}
}
|
