diff options
Diffstat (limited to 'src')
10 files changed, 29 insertions, 23 deletions
diff --git a/src/main/java/com/c2kernel/graph/model/GraphableVertex.java b/src/main/java/com/c2kernel/graph/model/GraphableVertex.java index 7c9adef..77be7a8 100644 --- a/src/main/java/com/c2kernel/graph/model/GraphableVertex.java +++ b/src/main/java/com/c2kernel/graph/model/GraphableVertex.java @@ -5,6 +5,7 @@ package com.c2kernel.graph.model; */
+import com.c2kernel.common.InvalidDataException;
import com.c2kernel.utils.CastorHashMap;
import com.c2kernel.utils.KeyValuePair;
public abstract class GraphableVertex extends Vertex
@@ -25,6 +26,14 @@ public abstract class GraphableVertex extends Vertex {
return mProperties;
}
+ protected int getVersionNumberProperty(String propName) throws InvalidDataException {
+ Object val = getProperties().get(propName);
+ try {
+ return Integer.parseInt(val.toString());
+ } catch (NumberFormatException ex) {
+ throw new InvalidDataException("Invalid version number for property '"+propName+"': "+val.toString(), "");
+ }
+ }
public KeyValuePair[] getKeyValuePairs()
{
return mProperties.getKeyValuePairs();
diff --git a/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java b/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java index 9a3819b..514dc72 100644 --- a/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java +++ b/src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java @@ -44,7 +44,7 @@ public class ActivitySlotDef extends WfVertexDef public ActivityDef getTheActivityDef() throws ObjectNotFoundException, InvalidDataException
{
- ActivityDef actDef = LocalObjectLoader.getActDef(getActivityDef(), getActVersion());
+ ActivityDef actDef = LocalObjectLoader.getActDef(getActivityDef(), getVersionNumberProperty("Version"));
if (actDef instanceof CompositeActivityDef)
mIsComposite = true;
return actDef;
@@ -142,14 +142,6 @@ public class ActivitySlotDef extends WfVertexDef {
return (String) getProperties().get("Name");
}
- public int getActVersion() throws InvalidDataException
- {
- Object verObj = getProperties().get("Version");
- if (verObj instanceof Integer)
- return (Integer)verObj;
- else
- throw new InvalidDataException("Version string was not an integer", "");
- }
@Override
public WfVertex instantiate() throws ObjectNotFoundException, InvalidDataException {
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java index a386194..a83eadd 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java @@ -82,7 +82,7 @@ public class Activity extends WfVertex public StateMachine getStateMachine() throws InvalidDataException {
if (machine == null) {
String name = (String)getProperties().get("StateMachineName");
- Integer version = (Integer)getProperties().get("StateMachineVersion");
+ int version = getVersionNumberProperty("StateMachineVersion");
try {
machine = LocalObjectLoader.getStateMachine(name, version);
} catch (ObjectNotFoundException ex) {
@@ -104,7 +104,7 @@ public class Activity extends WfVertex }
return machine;
}
-
+
/** return the current State of the State machine (Used in Serialisation) */
public int getState() throws InvalidDataException
{
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java b/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java index 89f5ad2..357e86a 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java @@ -24,7 +24,7 @@ public class OrSplit extends Split {
String nexts;
String scriptName = (String) getProperties().get("RoutingScriptName");
- Integer scriptVersion = (Integer) getProperties().get("RoutingScriptVersion");
+ int scriptVersion = getVersionNumberProperty("RoutingScriptVersion");
try {
nexts = this.evaluateScript(scriptName, scriptVersion, itemSysKey).toString();
} catch (ScriptingEngineException e) {
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java b/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java index a74a939..f8c314d 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java @@ -33,7 +33,7 @@ public class XOrSplit extends Split ArrayList<DirectedEdge> nextsToFollow = new ArrayList<DirectedEdge>();
String nexts;
String scriptName = (String) getProperties().get("RoutingScriptName");
- int scriptVersion = (Integer) getProperties().get("RoutingScriptVersion");
+ int scriptVersion = getVersionNumberProperty("RoutingScriptVersion");
try {
nexts = this.evaluateScript(scriptName, scriptVersion, itemSysKey).toString();
} catch (ScriptingEngineException e) {
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 2e3d652..10e54d1 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java @@ -93,7 +93,12 @@ public class CreateItemFromDescription extends PredefinedStep // get the first member from the wf collection
CollectionMember wfMember = members.get(0);
wfDefName = wfMember.resolveEntity().getName();
- wfDefVer = (Integer)wfMember.getProperties().get("Version");
+ Object wfVerObj = wfMember.getProperties().get("Version");
+ try {
+ wfDefVer = Integer.parseInt(wfVerObj.toString());
+ } catch (NumberFormatException ex) {
+ throw new InvalidDataException("Invalid workflow version number: "+wfVerObj.toString(), "");
+ }
}
}
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Outcome.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Outcome.java index a8431de..9ab5793 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Outcome.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Outcome.java @@ -10,10 +10,10 @@ public class Outcome { public Outcome() {
}
- public Outcome(String schema, String version, String viewname, String path) {
+ public Outcome(String schema, int version, String viewname, String path) {
super();
this.schema = schema;
- this.version = Integer.parseInt(version);
+ this.version = version;
this.viewname = viewname;
this.path = path;
}
diff --git a/src/main/java/com/c2kernel/process/module/Module.java b/src/main/java/com/c2kernel/process/module/Module.java index a932361..d0a017c 100644 --- a/src/main/java/com/c2kernel/process/module/Module.java +++ b/src/main/java/com/c2kernel/process/module/Module.java @@ -67,7 +67,7 @@ public class Module { }
moduleItem.dependencyList.add(children);
// Add moduleXML
- Outcome moduleOutcome = new Outcome("Module", "0", "last", null);
+ Outcome moduleOutcome = new Outcome("Module", 0, "last", null);
moduleOutcome.data = moduleXML;
moduleItem.outcomes.add(moduleOutcome);
imports.list.add(moduleItem);
diff --git a/src/main/java/com/c2kernel/scripting/Script.java b/src/main/java/com/c2kernel/scripting/Script.java index 1a755ea..9166e2e 100644 --- a/src/main/java/com/c2kernel/scripting/Script.java +++ b/src/main/java/com/c2kernel/scripting/Script.java @@ -43,7 +43,7 @@ public class Script {
String mScript = "";
String mName;
- String mVersion;
+ Integer mVersion;
HashMap<String, Parameter> mInputParams = new HashMap<String, Parameter>();
HashMap<String, Parameter> mAllInputParams = new HashMap<String, Parameter>();
HashMap<String, Parameter> mOutputParams = new HashMap<String, Parameter>();
@@ -79,7 +79,7 @@ public class Script public Script(String scriptName, int scriptVersion) throws ScriptingEngineException
{
mName = scriptName;
- mVersion = String.valueOf(scriptVersion);
+ mVersion = scriptVersion;
if (!scriptName.equals(""))
loadScript(mName, mVersion);
}
@@ -92,7 +92,7 @@ public class Script {
mName = "<expr>";
setScriptEngine(lang);
- mVersion = "";
+ mVersion = null;
addOutput(null, returnType);
mScript = expr;
}
@@ -121,7 +121,7 @@ public class Script public Script(ItemProxy object, AgentProxy subject, Job job) throws ScriptingEngineException
{
- this(job.getActPropString("ScriptName"), job.getActPropString("ScriptVersion") == null ? -1 : Integer.parseInt(job.getActPropString("ScriptVersion")));
+ this(job.getActPropString("ScriptName"), job.getActPropString("ScriptVersion") == null ? null : Integer.parseInt(job.getActPropString("ScriptVersion").toString()));
// set environment - this needs to be well documented for script developers
if (!mInputParams.containsKey("item"))
addInputParam("item", ItemProxy.class);
@@ -183,7 +183,7 @@ public class Script engine.setContext(context);
}
- private void loadScript(String scriptName, String scriptVersion) throws ScriptingEngineException
+ private void loadScript(String scriptName, int scriptVersion) throws ScriptingEngineException
{
try
{
diff --git a/src/main/java/com/c2kernel/utils/LocalObjectLoader.java b/src/main/java/com/c2kernel/utils/LocalObjectLoader.java index c17db40..aef7b96 100644 --- a/src/main/java/com/c2kernel/utils/LocalObjectLoader.java +++ b/src/main/java/com/c2kernel/utils/LocalObjectLoader.java @@ -24,7 +24,7 @@ public class LocalObjectLoader { return (ItemProxy)Gateway.getProxyManager().getProxy(defPath);
}
- static public String getScript(String scriptName, String scriptVersion) throws ObjectNotFoundException {
+ static public String getScript(String scriptName, int scriptVersion) throws ObjectNotFoundException {
Logger.msg(5, "Loading script "+scriptName+" v"+scriptVersion);
try {
ItemProxy script = loadLocalObjectDef("/desc/Script/", scriptName);
|
