From bce2990a1434bf78e85adbfc66cec1a402342f3c Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Wed, 17 Jul 2013 12:17:30 +0200 Subject: Mapfile started --- .../lifecycle/instance/stateMachine/State.java | 31 +++++----- .../instance/stateMachine/StateMachine.java | 16 +++++ .../instance/stateMachine/Transition.java | 72 ++++++++++++++++++++-- .../instance/stateMachine/TransitionOutcome.java | 36 +++++++++++ .../instance/stateMachine/TransitionResource.java | 9 +++ .../instance/stateMachine/TransitionScript.java | 27 ++++++++ 6 files changed, 169 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionOutcome.java create mode 100644 src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionResource.java create mode 100644 src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionScript.java (limited to 'src/main/java/com') diff --git a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/State.java b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/State.java index 8c5924b..b4488c0 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/State.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/State.java @@ -2,7 +2,6 @@ package com.c2kernel.lifecycle.instance.stateMachine; import java.io.Serializable; import java.util.ArrayList; -import java.util.HashMap; public class State implements Serializable { @@ -15,6 +14,7 @@ public class State implements Serializable { public State() { possibleTransitions = new ArrayList(); + possibleTransitionIds = new ArrayList(); } public String getName() { @@ -25,21 +25,20 @@ public class State implements Serializable { this.name = name; } - public void setPossibleTransitionNames(ArrayList newIds) { - possibleTransitionIds = newIds; - possibleTransitions.clear(); + + public int getCode() { + return code; } - - protected boolean resolveTransitions(HashMap transitions) { - possibleTransitions.clear(); - boolean allFound = true; - for (Integer name : possibleTransitionIds) { - if (transitions.keySet().contains(name)) - possibleTransitions.add(transitions.get(name)); - else { - allFound = false; - } - } - return allFound; + + public void setCode(int code) { + this.code = code; + } + + public boolean isProceeds() { + return proceeds; + } + + public void setProceeds(boolean proceeds) { + this.proceeds = proceeds; } } 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 fe3e74b..29ad7da 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/StateMachine.java @@ -17,6 +17,7 @@ public class StateMachine implements Serializable private final HashMap transitionCodes; State initialState; + int initialStateCode; boolean isCoherent = false; public StateMachine() { @@ -61,4 +62,19 @@ public class StateMachine implements Serializable public State getInitialState() { return initialState; } + + public void setInitialState(State initialState) { + this.initialState = initialState; + initialStateCode = initialState.getCode(); + } + + public int getInitialStateCode() { + return initialStateCode; + } + + public void setInitialStateCode(int initialStateCode) { + this.initialStateCode = initialStateCode; + initialState = stateCodes.get(initialStateCode); + if (initialState == null) isCoherent = false; + } } \ No newline at end of file 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 85383f7..36a3d50 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/Transition.java @@ -23,13 +23,73 @@ public class Transition implements Serializable { // permissions String roleOverride; - // schema properties - String outcomeSchemaName, outcomeSchemaVersion; // Name & version of the schema of the data required for this transition. - boolean outcomeRequired = true; // If true, then the data must be supplied to perform the transition, otherwise it is optional - - // script properties - String scriptName, scriptVersion; // Name & version of the script to be run by the agent during this transition + TransitionOutcome outcome; + TransitionScript script; + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public State getOriginState() { + return originState; + } + + public void setOriginState(State originState) { + this.originState = originState; + } + + public State getTerminalState() { + return terminalState; + } + + public void setTerminalState(State terminalState) { + this.terminalState = terminalState; + } + + public String getEnabledProp() { + return enabledProp; + } + + public void setEnabledProp(String enabledProp) { + this.enabledProp = enabledProp; + } + + public boolean isRequiresActive() { + return requiresActive; + } + + public void setRequiresActive(boolean requiresActive) { + this.requiresActive = requiresActive; + } + + public String getRoleOverride() { + return roleOverride; + } + + public void setRoleOverride(String roleOverride) { + this.roleOverride = roleOverride; + } + + public TransitionOutcome getOutcome() { + return outcome; + } + + public void setOutcome(TransitionOutcome outcome) { + this.outcome = outcome; + } + + public TransitionScript getScript() { + return script; + } + + public void setScript(TransitionScript script) { + this.script = script; + } + public Transition() { } diff --git a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionOutcome.java b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionOutcome.java new file mode 100644 index 0000000..9646bc3 --- /dev/null +++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionOutcome.java @@ -0,0 +1,36 @@ +package com.c2kernel.lifecycle.instance.stateMachine; + +public class TransitionOutcome extends TransitionResource { + + // schema properties + String outcomeSchemaName, outcomeSchemaVersion; // Name & version of the schema of the data required for this transition. + boolean outcomeRequired = true; // If true, then the data must be supplied to perform the transition, otherwise it is optional + + public TransitionOutcome() { + } + + public String getOutcomeSchemaName() { + return outcomeSchemaName; + } + + public void setOutcomeSchemaName(String outcomeSchemaName) { + this.outcomeSchemaName = outcomeSchemaName; + } + + public String getOutcomeSchemaVersion() { + return outcomeSchemaVersion; + } + + public void setOutcomeSchemaVersion(String outcomeSchemaVersion) { + this.outcomeSchemaVersion = outcomeSchemaVersion; + } + + public boolean isOutcomeRequired() { + return outcomeRequired; + } + + public void setOutcomeRequired(boolean outcomeRequired) { + this.outcomeRequired = outcomeRequired; + } + +} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionResource.java b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionResource.java new file mode 100644 index 0000000..f644a4c --- /dev/null +++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionResource.java @@ -0,0 +1,9 @@ +package com.c2kernel.lifecycle.instance.stateMachine; + +public class TransitionResource { + + public TransitionResource() { + // TODO Auto-generated constructor stub + } + +} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionScript.java b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionScript.java new file mode 100644 index 0000000..80a122a --- /dev/null +++ b/src/main/java/com/c2kernel/lifecycle/instance/stateMachine/TransitionScript.java @@ -0,0 +1,27 @@ +package com.c2kernel.lifecycle.instance.stateMachine; + +public class TransitionScript extends TransitionResource { + + // script properties + String scriptName, scriptVersion; // Name & version of the script to be run by the agent during this transition + + public String getScriptName() { + return scriptName; + } + + public void setScriptName(String scriptName) { + this.scriptName = scriptName; + } + + public String getScriptVersion() { + return scriptVersion; + } + + public void setScriptVersion(String scriptVersion) { + this.scriptVersion = scriptVersion; + } + + public TransitionScript() { + } + +} -- cgit v1.2.3