diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2013-10-29 16:21:08 +0100 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2013-10-29 16:21:08 +0100 |
| commit | fd8108209688cda9e782a4c3c91be522eb3ed1f4 (patch) | |
| tree | 62e38f2aecb05242f7d26f75e2fcf5765e47a8d8 /src | |
| parent | 79bdf4aa01fb9ca991de032733919923a19192c8 (diff) | |
Exception cleanup
Allow versions to be null: use Integer or String
Diffstat (limited to 'src')
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<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());
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 @@ <OutEdgeId>20</OutEdgeId>
<OutEdgeId>21</OutEdgeId>
<Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
+ <KeyValuePair Key="LastNum" String="2"/>
<KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
</Properties>
</LoopDef>
@@ -37,10 +36,7 @@ <OutlinePoint x="244" y="51"/>
<OutEdgeId>16</OutEdgeId>
<OutEdgeId>17</OutEdgeId>
- <Properties>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String=""/>
- </Properties>
+ <Properties/>
</AndSplitDef>
<JoinDef ID="4" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
<CentrePoint x="265" y="473"/>
@@ -65,7 +61,6 @@ <OutEdgeId>8</OutEdgeId>
<Properties>
<KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
<KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
</Properties>
</LoopDef>
@@ -78,8 +73,6 @@ <InEdgeId>18</InEdgeId>
<OutEdgeId>19</OutEdgeId>
<Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
<KeyValuePair Key="ViewName" String="CompositeActivityDef"/>
<KeyValuePair Key="Name" String="AssignNewActivityVersionFromLast"/>
</Properties>
@@ -107,8 +100,6 @@ <InEdgeId>24</InEdgeId>
<OutEdgeId>25</OutEdgeId>
<Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
<KeyValuePair Key="Name" String="EditDefinition"/>
<KeyValuePair Key="SchemaType" String="CompositeActivityDef"/>
</Properties>
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 @@ <OutEdgeId>21</OutEdgeId>
<Properties>
<KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
<KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
</Properties>
</LoopDef>
@@ -49,10 +48,7 @@ <OutlinePoint x="244" y="51"/>
<OutEdgeId>16</OutEdgeId>
<OutEdgeId>17</OutEdgeId>
- <Properties>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String=""/>
- </Properties>
+ <Properties/>
</AndSplitDef>
<LoopDef ID="3" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
<CentrePoint x="177" y="359"/>
@@ -65,7 +61,6 @@ <OutEdgeId>8</OutEdgeId>
<Properties>
<KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
<KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
</Properties>
</LoopDef>
|
