package org.apereo.cas.web.flow; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.webflow.engine.model.AbstractActionModel; import org.springframework.webflow.engine.model.AbstractStateModel; import org.springframework.webflow.engine.model.FlowModel; import org.springframework.webflow.engine.model.TransitionModel; import org.springframework.webflow.engine.model.VarModel; import org.springframework.webflow.engine.model.builder.FlowModelBuilder; import org.springframework.webflow.engine.model.builder.FlowModelBuilderException; import java.util.LinkedList; /** * This is {@link DynamicFlowModelBuilder}. * * @author Misagh Moayyed * @since 5.1.0 */ public class DynamicFlowModelBuilder implements FlowModelBuilder { /** * The Flow model. */ private FlowModel flowModel; /** * Instantiates a new Dynamic flow model builder. */ public DynamicFlowModelBuilder() { init(); } @Override public void init() throws FlowModelBuilderException { if (this.flowModel == null) { this.flowModel = new FlowModel(); } } @Override public void build() throws FlowModelBuilderException { } /** * Sets on start actions. * * @param vars the vars */ public void setOnStartActions(final LinkedList<AbstractActionModel> vars) { this.flowModel.setOnStartActions(vars); } /** * Sets start state id. * * @param id the id */ public void setStartStateId(final String id) { this.flowModel.setStartStateId(id); } /** * Sets vars. * * @param vars the vars */ public void setVars(final LinkedList<VarModel> vars) { this.flowModel.setVars(vars); } /** * Sets global transitions. * * @param vars the vars */ public void setGlobalTransitions(final LinkedList<TransitionModel> vars) { this.flowModel.setGlobalTransitions(vars); } /** * Sets states. * * @param states the states */ public void setStates(final LinkedList<AbstractStateModel> states) { this.flowModel.setStates(states); } @Override public FlowModel getFlowModel() throws FlowModelBuilderException { return this.flowModel; } @Override public void dispose() throws FlowModelBuilderException { this.flowModel = null; } @Override public Resource getFlowModelResource() { return new ClassPathResource("src/main/resources"); } @Override public boolean hasFlowModelResourceChanged() { return false; } }