From fd8108209688cda9e782a4c3c91be522eb3ed1f4 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 29 Oct 2013 16:21:08 +0100 Subject: Exception cleanup Allow versions to be null: use Integer or String --- .../java/com/c2kernel/graph/model/GraphableVertex.java | 5 +++-- src/main/java/com/c2kernel/lifecycle/AndSplitDef.java | 2 +- .../java/com/c2kernel/lifecycle/WfCastorHashMap.java | 4 ++-- .../java/com/c2kernel/lifecycle/instance/OrSplit.java | 2 +- .../java/com/c2kernel/lifecycle/instance/WfVertex.java | 18 ++++++------------ .../java/com/c2kernel/lifecycle/instance/XOrSplit.java | 4 ++-- .../lifecycle/instance/stateMachine/StateMachine.java | 2 +- .../lifecycle/instance/stateMachine/Transition.java | 4 ++-- src/main/resources/boot/CA/ManageCompositeActDef.xml | 13 ++----------- src/main/resources/boot/CA/ManageElementaryActDef.xml | 7 +------ 10 files changed, 21 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/c2kernel/graph/model/GraphableVertex.java b/src/main/java/com/c2kernel/graph/model/GraphableVertex.java index 77be7a8..b0b74fd 100644 --- a/src/main/java/com/c2kernel/graph/model/GraphableVertex.java +++ b/src/main/java/com/c2kernel/graph/model/GraphableVertex.java @@ -26,10 +26,11 @@ public abstract class GraphableVertex extends Vertex { return mProperties; } - protected int getVersionNumberProperty(String propName) throws InvalidDataException { + protected Integer getVersionNumberProperty(String propName) throws InvalidDataException { Object val = getProperties().get(propName); + if (val == null || val.equals("") || val.toString().equals("-1")) return null; try { - return Integer.parseInt(val.toString()); + return new Integer(val.toString()); } catch (NumberFormatException ex) { throw new InvalidDataException("Invalid version number for property '"+propName+"': "+val.toString(), ""); } 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(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 nextsToFollow = new ArrayList(); 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()); diff --git a/src/main/resources/boot/CA/ManageCompositeActDef.xml b/src/main/resources/boot/CA/ManageCompositeActDef.xml index 9eb8bf0..f1def44 100644 --- a/src/main/resources/boot/CA/ManageCompositeActDef.xml +++ b/src/main/resources/boot/CA/ManageCompositeActDef.xml @@ -11,8 +11,7 @@ 20 21 - - + @@ -37,10 +36,7 @@ 16 17 - - - - + @@ -65,7 +61,6 @@ 8 - @@ -78,8 +73,6 @@ 18 19 - - @@ -107,8 +100,6 @@ 24 25 - - diff --git a/src/main/resources/boot/CA/ManageElementaryActDef.xml b/src/main/resources/boot/CA/ManageElementaryActDef.xml index 77baa8e..756fb8a 100644 --- a/src/main/resources/boot/CA/ManageElementaryActDef.xml +++ b/src/main/resources/boot/CA/ManageElementaryActDef.xml @@ -12,7 +12,6 @@ 21 - @@ -49,10 +48,7 @@ 16 17 - - - - + @@ -65,7 +61,6 @@ 8 - -- cgit v1.2.3