Interface to be implemented by objects that wish to listen and respond to the lifecycle of {@link FlowExecution flow executions}.
An 'observer' that is very aspect like, allowing you to insert 'cross cutting' behavior at well-defined points within one or more well-defined flow execution lifecycles.
For example, one custom listener may apply security checks at the flow execution level, preventing a flow from starting or a state from entering if the current user does not have the necessary permissions. Another listener may track flow execution navigation history to support bread crumbs. Another may perform auditing, or setup and tear down connections to a transactional resource.
Note that flow execution listeners are registered with a flow execution when that execution is created by a {@link FlowExecutionFactory factory} or restored by a{@link org.springframework.webflow.execution.repository.FlowExecutionRepository}. Typically a listener will not be registered with a flow execution at runtime, when the flow execution is already active.
@see FlowDefinition
@see StateDefinition
@see FlowExecution
@see RequestContext
@see Event
@author Keith Donald
@author Erwin Vervaet
@author Scott Andrews