summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2013-12-09 17:34:51 +0100
committerAndrew Branson <andrew.branson@cern.ch>2013-12-09 17:34:51 +0100
commitc6e9aa47819f5681b187668753ae4a5e53f4e2bc (patch)
treebd239126b00dfdea25d83a72c744a594afb06ecb /src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java
parent37bb1907aca2a3246a7b5d759df79b7fd97c276f (diff)
Return false from Transition.hasOutcome and hasScript if there are
property symbols but the properties are empty (e.g. activities with no schema defined). The methods must now be given activity properties.
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java')
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java34
1 files changed, 22 insertions, 12 deletions
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 9922c7c..704f2bf 100644
--- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java
+++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java
@@ -241,7 +241,7 @@ public class Transition implements Serializable {
while (propMatcher.find()) {
String propName = propMatcher.group(1);
Object propValue = props.get(propName);
- Logger.debug("Replacing Property "+propName+" as "+propValue);
+ Logger.msg(8, "Replacing Property "+propName+" as "+propValue);
String propValString = propValue==null?"":propValue.toString();
result = result.replace("${"+propName+"}", propValString);
}
@@ -254,19 +254,24 @@ public class Transition implements Serializable {
return (Boolean)props.get(enabledProp);
}
- public boolean hasOutcome() {
- return outcome!=null
- && outcome.schemaName!=null && outcome.schemaName.length()>0
- && outcome.schemaVersion!=null && outcome.schemaVersion.length()>0;
+ public boolean hasOutcome(CastorHashMap actProps) {
+ if (outcome == null || actProps == null) return false;
+ String outcomeName = resolveValue(outcome.schemaName, actProps);
+ if (outcomeName == null || outcomeName.length() == 0)
+ return false;
+ String outcomeVersion = resolveValue(outcome.schemaVersion, actProps);
+ if (outcomeVersion == null || outcomeVersion.length() == 0)
+ return false;
+ return true;
}
public Schema getSchema(CastorHashMap actProps) throws InvalidDataException, ObjectNotFoundException {
- if (hasOutcome())
+ if (hasOutcome(actProps))
try {
return LocalObjectLoader.getSchema(resolveValue(outcome.schemaName, actProps),
Integer.parseInt(resolveValue(outcome.schemaVersion, actProps)));
} catch (NumberFormatException ex) {
- throw new InvalidDataException("Bad schema version number: "+outcome.schemaVersion+" ("+resolveValue(outcome.schemaVersion, actProps), "");
+ throw new InvalidDataException("Bad schema version number: "+outcome.schemaVersion+" ("+resolveValue(outcome.schemaVersion, actProps)+")", "");
}
else
return null;
@@ -280,13 +285,18 @@ public class Transition implements Serializable {
try {
return Integer.parseInt(resolveValue(script.scriptVersion, actProps));
} catch (NumberFormatException ex) {
- throw new InvalidDataException("Bad Script version number: "+script.scriptVersion+" ("+resolveValue(script.scriptVersion, actProps));
+ throw new InvalidDataException("Bad Script version number: "+script.scriptVersion+" ("+resolveValue(script.scriptVersion, actProps)+")", "");
}
}
- public boolean hasScript() {
- return script!=null
- && script.scriptName!=null && script.scriptName.length()>0
- && script.scriptVersion!=null && script.scriptVersion.length()>0;
+ public boolean hasScript(CastorHashMap actProps) {
+ if (script == null || actProps == null) return false;
+ String scriptName = getScriptName(actProps);
+ if (scriptName == null || scriptName.length() == 0)
+ return false;
+ String scriptVersion = resolveValue(script.scriptVersion, actProps);
+ if (scriptVersion == null || scriptVersion.length() == 0)
+ return false;
+ return true;
}
}