summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2013-10-27 21:06:45 +0100
committerAndrew Branson <andrew.branson@cern.ch>2013-10-27 21:06:45 +0100
commit79bdf4aa01fb9ca991de032733919923a19192c8 (patch)
tree3804d7f5b9fc2858bb27f7649d46f275613afd41 /src/main/java
parent30cd736670a579985890d8c2dfe363bacbad7568 (diff)
3.0-SNAPSHOT
Do Integer.parseInt(propObj.toString()) to tolerate String or Integer version properties.
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/c2kernel/graph/model/GraphableVertex.java9
-rw-r--r--src/main/java/com/c2kernel/lifecycle/ActivitySlotDef.java10
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/Activity.java4
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java2
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java2
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java7
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Outcome.java4
-rw-r--r--src/main/java/com/c2kernel/process/module/Module.java2
-rw-r--r--src/main/java/com/c2kernel/scripting/Script.java10
-rw-r--r--src/main/java/com/c2kernel/utils/LocalObjectLoader.java2
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);