From 3bc28ccab34cfe2980d8af8f8a0461d0da465729 Mon Sep 17 00:00:00 2001 From: Keith Donald Date: Tue, 14 Apr 2009 20:23:27 +0000 Subject: [PATCH] polish swf-1094 --- .../engine/model/AbstractStateModel.java | 5 ++++- .../AbstractTransitionableStateModel.java | 4 ++++ .../engine/model/ActionStateModel.java | 2 +- .../engine/model/DecisionStateModel.java | 2 +- .../webflow/engine/model/EndStateModel.java | 2 +- .../webflow/engine/model/FlowModel.java | 7 +----- .../engine/model/SubflowStateModel.java | 22 +++++++++---------- .../webflow/engine/model/TransitionModel.java | 18 +++++++++++++-- .../webflow/engine/model/ViewStateModel.java | 8 ++----- 9 files changed, 41 insertions(+), 29 deletions(-) diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/AbstractStateModel.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/AbstractStateModel.java index d427ac12..a1496672 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/AbstractStateModel.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/AbstractStateModel.java @@ -38,8 +38,11 @@ public abstract class AbstractStateModel extends AbstractModel { private LinkedList exceptionHandlers; + public AbstractStateModel(String id) { + setId(id); + } + protected void fillCopy(AbstractStateModel copy) { - copy.setId(id); copy.setParent(parent); copy.setAttributes(copyList(attributes)); copy.setSecured((SecuredModel) copy(secured)); diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/AbstractTransitionableStateModel.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/AbstractTransitionableStateModel.java index 326693e5..faa44f5d 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/AbstractTransitionableStateModel.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/AbstractTransitionableStateModel.java @@ -28,6 +28,10 @@ public abstract class AbstractTransitionableStateModel extends AbstractStateMode private LinkedList onExitActions; + public AbstractTransitionableStateModel(String id) { + super(id); + } + protected void fillCopy(final AbstractTransitionableStateModel copy) { super.fillCopy(copy); copy.setTransitions(copyList(transitions)); diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/ActionStateModel.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/ActionStateModel.java index 9410f419..e2b6d28d 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/ActionStateModel.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/ActionStateModel.java @@ -32,7 +32,7 @@ public class ActionStateModel extends AbstractTransitionableStateModel { * @param id the state identifier */ public ActionStateModel(String id) { - setId(id); + super(id); } public boolean isMergeableWith(Model model) { diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/DecisionStateModel.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/DecisionStateModel.java index c7d67eb9..dec99572 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/DecisionStateModel.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/DecisionStateModel.java @@ -34,7 +34,7 @@ public class DecisionStateModel extends AbstractStateModel { * @param id the state identifier */ public DecisionStateModel(String id) { - setId(id); + super(id); } public boolean isMergeableWith(Model model) { diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/EndStateModel.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/EndStateModel.java index e5bc0107..5f5be866 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/EndStateModel.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/EndStateModel.java @@ -37,7 +37,7 @@ public class EndStateModel extends AbstractStateModel { * @param id the state identifier */ public EndStateModel(String id) { - setId(id); + super(id); } public boolean isMergeableWith(Model model) { diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/FlowModel.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/FlowModel.java index 7ad16d64..4607a06b 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/FlowModel.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/FlowModel.java @@ -115,12 +115,7 @@ public class FlowModel extends AbstractModel { copy.setStartStateId(startStateId); copy.setAttributes(copyList(attributes)); copy.setSecured((SecuredModel) copy(secured)); - if (secured != null) { - copy.setSecured((SecuredModel) secured.createCopy()); - } - if (persistenceContext != null) { - copy.setPersistenceContext((PersistenceContextModel) persistenceContext.createCopy()); - } + copy.setPersistenceContext((PersistenceContextModel) copy(persistenceContext)); copy.setVars(copyList(vars)); copy.setInputs(copyList(inputs)); copy.setOutputs(copyList(outputs)); diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/SubflowStateModel.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/SubflowStateModel.java index c42f6205..638600f2 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/SubflowStateModel.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/SubflowStateModel.java @@ -15,11 +15,11 @@ */ package org.springframework.webflow.engine.model; +import java.util.LinkedList; + import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; -import java.util.LinkedList; - /** * Model support for subflow states. * @author Scott Andrews @@ -40,7 +40,7 @@ public class SubflowStateModel extends AbstractTransitionableStateModel { * @param subflow the identifier of the flow to launch as a subflow */ public SubflowStateModel(String id, String subflow) { - setId(id); + super(id); setSubflow(subflow); } @@ -67,14 +67,14 @@ public class SubflowStateModel extends AbstractTransitionableStateModel { setOutputs(merge(getOutputs(), state.getOutputs())); } - public Model createCopy() { - final SubflowStateModel copy = new SubflowStateModel(getId(), subflow); - super.fillCopy(copy); - copy.setSubflowAttributeMapper(subflowAttributeMapper); - copy.setInputs(copyList(inputs)); - copy.setOutputs(copyList(outputs)); - return copy; - } + public Model createCopy() { + final SubflowStateModel copy = new SubflowStateModel(getId(), subflow); + super.fillCopy(copy); + copy.setSubflowAttributeMapper(subflowAttributeMapper); + copy.setInputs(copyList(inputs)); + copy.setOutputs(copyList(outputs)); + return copy; + } /** * @return the subflow diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/TransitionModel.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/TransitionModel.java index 59eef8da..f9dc8f38 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/TransitionModel.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/TransitionModel.java @@ -15,11 +15,11 @@ */ package org.springframework.webflow.engine.model; +import java.util.LinkedList; + import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; -import java.util.LinkedList; - /** * Model support for transitions. *

@@ -76,6 +76,20 @@ public class TransitionModel extends AbstractModel { setActions(merge(getActions(), transition.getActions(), false)); } + public Model createCopy() { + TransitionModel copy = new TransitionModel(); + copy.setOn(on); + copy.setOnException(onException); + copy.setTo(to); + copy.setBind(bind); + copy.setValidate(validate); + copy.setHistory(history); + copy.setAttributes(copyList(attributes)); + copy.setSecured((SecuredModel) copy(secured)); + copy.setActions(copyList(actions)); + return copy; + } + /** * @return the on */ diff --git a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/ViewStateModel.java b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/ViewStateModel.java index 81b7a77c..18649107 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/engine/model/ViewStateModel.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/engine/model/ViewStateModel.java @@ -46,7 +46,7 @@ public class ViewStateModel extends AbstractTransitionableStateModel { * @param id the identifier of the state */ public ViewStateModel(String id) { - setId(id); + super(id); } public boolean isMergeableWith(Model model) { @@ -83,11 +83,7 @@ public class ViewStateModel extends AbstractTransitionableStateModel { copy.setPopup(popup); copy.setModel(model); copy.setVars(copyList(vars)); - if (binder != null) { - copy.setBinder((BinderModel) binder.createCopy()); - } else { - copy.setBinder(null); - } + copy.setBinder((BinderModel) copy(binder)); copy.setOnRenderActions(copyList(onRenderActions)); return copy; }