diff options
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.java | 34 |
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;
}
}
|
