Spring Web Flow

org.springframework.webflow.execution
Interface FlowExecutionContext

All Known Subinterfaces:
FlowExecution
All Known Implementing Classes:
FlowExecutionImpl, MockFlowExecutionContext

public interface FlowExecutionContext

Provides contextual information about a flow execution. A flow execution is an runnable instance of a FlowDefinition. It is the central Spring Web Flow construct for carrying out a conversation with a client. This immutable interface provides access to runtime information about the conversation, such as it's status and current state.

An object implementing this interface is also traversable from a execution request context (see RequestContext.getFlowExecutionContext()).

This interface provides information that may span more than one request in a thread safe manner. The RequestContext interface defines a request specific control interface for manipulating exactly one flow execution locally from exactly one request.

Author:
Keith Donald, Erwin Vervaet
See Also:
FlowDefinition, FlowSession, RequestContext

Method Summary
 FlowSession getActiveSession()
          Returns the active flow session of this flow execution.
 AttributeMap<java.lang.Object> getAttributes()
          Returns runtime execution attributes that may influence the behavior of flow artifacts, such as states and actions.
 MutableAttributeMap<java.lang.Object> getConversationScope()
          Returns a mutable map for data held in "conversation scope".
 FlowDefinition getDefinition()
          Returns the root flow definition associated with this executing flow.
 MutableAttributeMap<java.lang.Object> getFlashScope()
          Returns a mutable map for data held in "flash scope".
 FlowExecutionKey getKey()
          Returns the key assigned to this flow execution.
 FlowExecutionOutcome getOutcome()
          Returns the outcome reached by this execution, or null if this execution has not yet ended.
 boolean hasEnded()
          Returns a flag indicating if this execution has ended.
 boolean hasStarted()
          Returns a flag indicating if this execution has been started.
 boolean isActive()
          Is the flow execution active? A flow execution is active once it has an active session and remains active until it has ended.
 

Method Detail

getKey

FlowExecutionKey getKey()
Returns the key assigned to this flow execution. The flow execution key is the flow execution's persistent identity.

Returns:
the flow execution key; may be null if a key has not yet been assigned.

getDefinition

FlowDefinition getDefinition()
Returns the root flow definition associated with this executing flow.

A call to this method always returns the same flow definition -- the top-level "root" -- no matter what flow may actually be active (for example, if subflows have been spawned).

Returns:
the root flow definition

hasStarted

boolean hasStarted()
Returns a flag indicating if this execution has been started. A flow execution that has started and is active is currently in progress. A flow execution that has started and is not active has ended.

Returns:
true if started, false if not started
See Also:
isActive()

isActive

boolean isActive()
Is the flow execution active? A flow execution is active once it has an active session and remains active until it has ended.

Returns:
true if active, false if the flow execution has terminated or has not yet been started

hasEnded

boolean hasEnded()
Returns a flag indicating if this execution has ended. A flow execution that has ended has been started but is no longer active.

Returns:
true if ended, false if not started or still active
See Also:
hasStarted(), isActive()

getOutcome

FlowExecutionOutcome getOutcome()
Returns the outcome reached by this execution, or null if this execution has not yet ended.

Returns:
the outcome, or null if this execution has not yet ended

getActiveSession

FlowSession getActiveSession()
                             throws java.lang.IllegalStateException
Returns the active flow session of this flow execution. The active flow session is the currently executing session. It may be the "root flow" session, or it may be a subflow session if this flow execution has spawned a subflow.

Returns:
the active flow session
Throws:
java.lang.IllegalStateException - if this flow execution is not active
See Also:
isActive()

getFlashScope

MutableAttributeMap<java.lang.Object> getFlashScope()
Returns a mutable map for data held in "flash scope". Attributes in this map are cleared out on the next view rendering. Flash attributes survive flow execution refresh operations.

Returns:
flash scope

getConversationScope

MutableAttributeMap<java.lang.Object> getConversationScope()
Returns a mutable map for data held in "conversation scope". Conversation scope is a data structure that exists for the life of this flow execution and is accessible to all flow sessions.

Returns:
conversation scope

getAttributes

AttributeMap<java.lang.Object> getAttributes()
Returns runtime execution attributes that may influence the behavior of flow artifacts, such as states and actions.

Returns:
execution attributes

Spring Web Flow