Class EndState

All Implemented Interfaces:
Annotated, StateDefinition

public class EndState extends State
A state that ends a flow when entered. This state ends the active flow session of an ongoing flow execution.

If the ended session is the "root flow session" the entire flow execution ends, signaling the end of a logical conversation.

If the terminated session was acting as a subflow, the flow execution continues and control is returned to the parent flow session. In that case, this state returns an ending result event the resuming parent flow responds to.

An end state may be configured with a renderer to render a final response. This renderer will be invoked if the end state terminates the entire flow execution.

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

  • Method Details

    • setFinalResponseAction

      public void setFinalResponseAction(Action finalResponseAction)
      Sets the renderer that will render the final flow execution response.
    • setOutputMapper

      public void setOutputMapper(Mapper outputMapper)
      Sets the attribute mapper to use for mapping output attributes exposed by this end state when it is entered.
    • doEnter

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

      This implementation pops the top (active) flow session off the execution stack, ending it, and resumes control in the parent flow (if necessary). If the ended session is the root flow, a final response is rendered.

      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
    • createSessionOutput

      protected LocalAttributeMap<Object> createSessionOutput(RequestContext context)
      Returns the subflow output map. This will invoke the output mapper (if any) to map data available in the flow execution request context into a newly created empty map.
    • 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 State
      Parameters:
      creator - the toString creator, to print properties to string
      See Also: