Class SubflowState

All Implemented Interfaces:
Annotated, StateDefinition, TransitionableStateDefinition

public class SubflowState extends TransitionableState
A transitionable state that spawns a subflow when executed. When the subflow this state spawns ends, the ending result is used as grounds for a state transition out of this state.

A subflow state may be configured to map input data from its flow -- acting as the parent flow -- down to the subflow when the subflow is spawned. In addition, output data produced by the subflow may be mapped up to the parent flow when the subflow ends and the parent flow resumes. See the SubflowAttributeMapper interface definition for more information on how to do this. The logic for ending a subflow is located in the EndState implementation.

Author:
Keith Donald, Erwin Vervaet
See Also:
  • Constructor Details

  • Method Details

    • setAttributeMapper

      public void setAttributeMapper(SubflowAttributeMapper attributeMapper)
      Set the attribute mapper used to map model data between the parent and child flow.
    • doEnter

      protected void doEnter(RequestControlContext context) throws FlowExecutionException
      Specialization of State's doEnter template method that executes behaviour specific to this state type in polymorphic fashion.

      Entering this state, creates the subflow input map and spawns the subflow in the current flow execution.

      Specified by:
      doEnter in class State
      Parameters:
      context - the control context for the currently executing flow, used by this state to manipulate the flow execution
      Throws:
      FlowExecutionException - if an exception occurs in this state
    • handleEvent

      public boolean handleEvent(RequestControlContext context)
      Called on completion of the subflow to handle the subflow result event as determined by the end state reached by the subflow.
      Overrides:
      handleEvent in class TransitionableState
      Parameters:
      context - the flow execution control context
    • appendToString

      protected void appendToString(org.springframework.core.style.ToStringCreator creator)
      Description copied from class: State
      Subclasses may override this hook method to print their internal state to a string. This default implementation does nothing.
      Overrides:
      appendToString in class TransitionableState
      Parameters:
      creator - the toString creator, to print properties to string
      See Also: