summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/lifecycle
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2013-10-29 16:21:08 +0100
committerAndrew Branson <andrew.branson@cern.ch>2013-10-29 16:21:08 +0100
commitfd8108209688cda9e782a4c3c91be522eb3ed1f4 (patch)
tree62e38f2aecb05242f7d26f75e2fcf5765e47a8d8 /src/main/java/com/c2kernel/lifecycle
parent79bdf4aa01fb9ca991de032733919923a19192c8 (diff)
Exception cleanup
Allow versions to be null: use Integer or String
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle')
-rw-r--r--src/main/java/com/c2kernel/lifecycle/AndSplitDef.java2
-rw-r--r--src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java4
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java2
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java18
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java4
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java2
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java4
7 files changed, 15 insertions, 21 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/AndSplitDef.java b/src/main/java/com/c2kernel/lifecycle/AndSplitDef.java
index 014fecc..af87b18 100644
--- a/src/main/java/com/c2kernel/lifecycle/AndSplitDef.java
+++ b/src/main/java/com/c2kernel/lifecycle/AndSplitDef.java
@@ -20,7 +20,7 @@ public class AndSplitDef extends WfVertexDef
{
mErrors = new Vector<String>(0, 1);
getProperties().put("RoutingScriptName", "");
- getProperties().put("RoutingScriptVersion", -1);
+ getProperties().put("RoutingScriptVersion", "");
}
/**
diff --git a/src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java b/src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java
index a52fcfe..5a9d472 100644
--- a/src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java
+++ b/src/main/java/com/c2kernel/lifecycle/WfCastorHashMap.java
@@ -17,9 +17,9 @@ public class WfCastorHashMap extends CastorHashMap
put("Agent Role", "");
put("Agent Name", "");
put("SchemaType", "");
- put("SchemaVersion", -1);
+ put("SchemaVersion", "");
put("ScriptName", "");
- put("ScriptVersion", -1);
+ put("ScriptVersion", "");
put("StateMachineName", "Default");
put("StateMachineVersion", 0);
put("Viewpoint", "");
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java b/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java
index 357e86a..b9fc263 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");
- int scriptVersion = getVersionNumberProperty("RoutingScriptVersion");
+ Integer scriptVersion = getVersionNumberProperty("RoutingScriptVersion");
try {
nexts = this.evaluateScript(scriptName, scriptVersion, itemSysKey).toString();
} catch (ScriptingEngineException e) {
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java b/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java
index 9ed5c8a..de5f56f 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java
@@ -112,7 +112,7 @@ public abstract class WfVertex extends GraphableVertex
*/
public abstract Next addNext(WfVertex vertex);
- protected Object evaluateScript(String scriptName, int scriptVersion, int itemSysKey) throws ScriptingEngineException
+ protected Object evaluateScript(String scriptName, Integer scriptVersion, int itemSysKey) throws ScriptingEngineException
{
try
@@ -172,24 +172,18 @@ public abstract class WfVertex extends GraphableVertex
}
}
- private static Script getScript(String name, int version) throws ScriptingEngineException
+ private static Script getScript(String name, Integer version) throws ScriptingEngineException
{
if (name == null || name.length() == 0)
throw new ScriptingEngineException("Script name is empty");
Script script;
- try
- {
+ if (version!=null) {
+ Logger.debug(version.toString());
script = new Script(name, version);
}
- catch (NumberFormatException e)
- { // version not valid
+ else { // empty version: try expression
int split = name.indexOf(":");
- if (split > -1)
- {
- script = new Script(name.substring(0, split), name.substring(split + 1));
- }
- else
- throw new ScriptingEngineException("Script version is invalid");
+ script = new Script(name.substring(0, split), name.substring(split + 1));
}
return script;
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java b/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java
index f8c314d..65bd4ba 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/XOrSplit.java
@@ -33,12 +33,12 @@ public class XOrSplit extends Split
ArrayList<DirectedEdge> nextsToFollow = new ArrayList<DirectedEdge>();
String nexts;
String scriptName = (String) getProperties().get("RoutingScriptName");
- int scriptVersion = getVersionNumberProperty("RoutingScriptVersion");
+ Integer scriptVersion = getVersionNumberProperty("RoutingScriptVersion");
try {
nexts = this.evaluateScript(scriptName, scriptVersion, itemSysKey).toString();
} catch (ScriptingEngineException e) {
Logger.error(e);
- throw new InvalidDataException("Error running routing script "+scriptName+" v"+scriptVersion, null);
+ throw new InvalidDataException("Error running routing script "+scriptName+" v"+scriptVersion, "");
}
StringTokenizer tok = new StringTokenizer(nexts,",");
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 3896ac5..c165e6f 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java
@@ -144,7 +144,7 @@ public class StateMachine implements DescriptionObject
return transition.targetState;
}
else
- throw new InvalidTransitionException();
+ throw new InvalidTransitionException("Transition '"+transition.getName()+"' not valid from state '"+currentState.getName(), "");
}
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 e7bcba9..9922c7c 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java
@@ -173,11 +173,11 @@ public class Transition implements Serializable {
// check available
if (!isEnabled(act.getProperties()))
- throw new AccessRightsException("Transition '"+name+"' is disabled by the '"+enabledProp+"' property.");
+ throw new AccessRightsException("Transition '"+name+"' is disabled by the '"+enabledProp+"' property.", "");
// check active
if (isRequiresActive() && !act.getActive())
- throw new AccessRightsException("Activity must be active to perform this transition", null);
+ throw new AccessRightsException("Activity must be active to perform this transition", "");
RolePath role = null;
String overridingRole = resolveValue(roleOverride, act.getProperties());