org.springframework.webflow.engine.builder
Class FlowArtifactFactory

java.lang.Object
  extended by org.springframework.webflow.engine.builder.FlowArtifactFactory

public class FlowArtifactFactory
extends java.lang.Object

A factory for core web flow elements such as flows, states, and transitions.

This factory encapsulates the construction of each Flow implementation as well as each core artifact type. Subclasses may customize how the core elements are created, useful for plugging in custom implementations.

Author:
Keith Donald, Erwin Vervaet

Constructor Summary
FlowArtifactFactory()
           
 
Method Summary
 State createActionState(java.lang.String id, Flow flow, Action[] entryActions, Action[] actions, Transition[] transitions, FlowExecutionExceptionHandler[] exceptionHandlers, Action[] exitActions, AttributeMap attributes)
          Factory method that creates a new action state, a state where a system action is executed.
 State createDecisionState(java.lang.String id, Flow flow, Action[] entryActions, Transition[] transitions, FlowExecutionExceptionHandler[] exceptionHandlers, Action[] exitActions, AttributeMap attributes)
          Factory method that creates a new decision state, a state where a flow routing decision is made.
 State createEndState(java.lang.String id, Flow flow, Action[] entryActions, ViewSelector viewSelector, org.springframework.binding.mapping.AttributeMapper outputMapper, FlowExecutionExceptionHandler[] exceptionHandlers, AttributeMap attributes)
          Factory method that creates a new end state, a state where an executing flow session terminates.
 Flow createFlow(java.lang.String id, AttributeMap attributes)
          Factory method that creates a new Flow definition object.
 State createSubflowState(java.lang.String id, Flow flow, Action[] entryActions, Flow subflow, FlowAttributeMapper attributeMapper, Transition[] transitions, FlowExecutionExceptionHandler[] exceptionHandlers, Action[] exitActions, AttributeMap attributes)
          Factory method that creates a new subflow state, a state where a parent flow spawns another flow as a subflow.
 Transition createTransition(TargetStateResolver targetStateResolver, TransitionCriteria matchingCriteria, TransitionCriteria executionCriteria, AttributeMap attributes)
          Factory method that creates a new transition, a path from one step in a flow to another.
 State createViewState(java.lang.String id, Flow flow, Action[] entryActions, ViewSelector viewSelector, Action[] renderActions, Transition[] transitions, FlowExecutionExceptionHandler[] exceptionHandlers, Action[] exitActions, AttributeMap attributes)
          Factory method that creates a new view state, a state where a user is allowed to participate in the flow.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FlowArtifactFactory

public FlowArtifactFactory()
Method Detail

createFlow

public Flow createFlow(java.lang.String id,
                       AttributeMap attributes)
                throws FlowArtifactLookupException
Factory method that creates a new Flow definition object.

Note this method does not return a fully configured Flow instance, it only encapsulates the selection of implementation. A FlowAssembler delegating to a calling FlowBuilder is expected to assemble the Flow fully before returning it to external clients.

Parameters:
id - the flow identifier, should be unique to all flows in an application (required)
attributes - attributes to assign to the Flow, which may also be used to affect flow construction; may be null
Returns:
the initial flow instance, ready for assembly by a FlowBuilder
Throws:
FlowArtifactLookupException - an exception occured creating the Flow instance

createViewState

public State createViewState(java.lang.String id,
                             Flow flow,
                             Action[] entryActions,
                             ViewSelector viewSelector,
                             Action[] renderActions,
                             Transition[] transitions,
                             FlowExecutionExceptionHandler[] exceptionHandlers,
                             Action[] exitActions,
                             AttributeMap attributes)
                      throws FlowArtifactLookupException
Factory method that creates a new view state, a state where a user is allowed to participate in the flow. This method is an atomic operation that returns a fully initialized state. It encapsulates the selection of the view state implementation as well as the state assembly.

Parameters:
id - the identifier to assign to the state, must be unique to its owning flow (required)
flow - the flow that will own (contain) this state (required)
entryActions - any state entry actions; may be null
viewSelector - the state view selector strategy; may be null
renderActions - any 'render actions' to execute on entry and refresh; may be null
transitions - any transitions (paths) out of this state; may be null
exceptionHandlers - any exception handlers; may be null
exitActions - any state exit actions; may be null
attributes - attributes to assign to the State, which may also be used to affect state construction; may be null
Returns:
the fully initialized view state instance
Throws:
FlowArtifactLookupException - an exception occured creating the state

createActionState

public State createActionState(java.lang.String id,
                               Flow flow,
                               Action[] entryActions,
                               Action[] actions,
                               Transition[] transitions,
                               FlowExecutionExceptionHandler[] exceptionHandlers,
                               Action[] exitActions,
                               AttributeMap attributes)
                        throws FlowArtifactLookupException
Factory method that creates a new action state, a state where a system action is executed. This method is an atomic operation that returns a fully initialized state. It encapsulates the selection of the action state implementation as well as the state assembly.

Parameters:
id - the identifier to assign to the state, must be unique to its owning flow (required)
flow - the flow that will own (contain) this state (required)
entryActions - any state entry actions; may be null
actions - the actions to execute when the state is entered (required)
transitions - any transitions (paths) out of this state; may be null
exceptionHandlers - any exception handlers; may be null
exitActions - any state exit actions; may be null
attributes - attributes to assign to the State, which may also be used to affect state construction; may be null
Returns:
the fully initialized action state instance
Throws:
FlowArtifactLookupException - an exception occured creating the state

createDecisionState

public State createDecisionState(java.lang.String id,
                                 Flow flow,
                                 Action[] entryActions,
                                 Transition[] transitions,
                                 FlowExecutionExceptionHandler[] exceptionHandlers,
                                 Action[] exitActions,
                                 AttributeMap attributes)
                          throws FlowArtifactLookupException
Factory method that creates a new decision state, a state where a flow routing decision is made. This method is an atomic operation that returns a fully initialized state. It encapsulates the selection of the decision state implementation as well as the state assembly.

Parameters:
id - the identifier to assign to the state, must be unique to its owning flow (required)
flow - the flow that will own (contain) this state (required)
entryActions - any state entry actions; may be null
transitions - any transitions (paths) out of this state
exceptionHandlers - any exception handlers; may be null
exitActions - any state exit actions; may be null
attributes - attributes to assign to the State, which may also be used to affect state construction; may be null
Returns:
the fully initialized decision state instance
Throws:
FlowArtifactLookupException - an exception occured creating the state

createSubflowState

public State createSubflowState(java.lang.String id,
                                Flow flow,
                                Action[] entryActions,
                                Flow subflow,
                                FlowAttributeMapper attributeMapper,
                                Transition[] transitions,
                                FlowExecutionExceptionHandler[] exceptionHandlers,
                                Action[] exitActions,
                                AttributeMap attributes)
                         throws FlowArtifactLookupException
Factory method that creates a new subflow state, a state where a parent flow spawns another flow as a subflow. This method is an atomic operation that returns a fully initialized state. It encapsulates the selection of the subflow state implementation as well as the state assembly.

Parameters:
id - the identifier to assign to the state, must be unique to its owning flow (required)
flow - the flow that will own (contain) this state (required)
entryActions - any state entry actions; may be null
subflow - the subflow definition (required)
attributeMapper - the subflow input and output attribute mapper; may be null
transitions - any transitions (paths) out of this state
exceptionHandlers - any exception handlers; may be null
exitActions - any state exit actions; may be null
attributes - attributes to assign to the State, which may also be used to affect state construction; may be null
Returns:
the fully initialized subflow state instance
Throws:
FlowArtifactLookupException - an exception occured creating the state

createEndState

public State createEndState(java.lang.String id,
                            Flow flow,
                            Action[] entryActions,
                            ViewSelector viewSelector,
                            org.springframework.binding.mapping.AttributeMapper outputMapper,
                            FlowExecutionExceptionHandler[] exceptionHandlers,
                            AttributeMap attributes)
                     throws FlowArtifactLookupException
Factory method that creates a new end state, a state where an executing flow session terminates. This method is an atomic operation that returns a fully initialized state. It encapsulates the selection of the end state implementation as well as the state assembly.

Parameters:
id - the identifier to assign to the state, must be unique to its owning flow (required)
flow - the flow that will own (contain) this state (required)
entryActions - any state entry actions; may be null
viewSelector - the state confirmation view selector strategy; may be null
outputMapper - the state output mapper; may be null
exceptionHandlers - any exception handlers; may be null
attributes - attributes to assign to the State, which may also be used to affect state construction; may be null
Returns:
the fully initialized subflow state instance
Throws:
FlowArtifactLookupException - an exception occured creating the state

createTransition

public Transition createTransition(TargetStateResolver targetStateResolver,
                                   TransitionCriteria matchingCriteria,
                                   TransitionCriteria executionCriteria,
                                   AttributeMap attributes)
                            throws FlowArtifactLookupException
Factory method that creates a new transition, a path from one step in a flow to another. This method is an atomic operation that returns a fully initialized transition. It encapsulates the selection of the transition implementation as well as the transition assembly.

Parameters:
targetStateResolver - the resolver of the target state of the transition (required)
matchingCriteria - the criteria that matches the transition; may be null
executionCriteria - the criteria that governs execution of the transition after match; may be null
attributes - attributes to assign to the transition, which may also be used to affect transition construction; may be null
Returns:
the fully initialized transition instance
Throws:
FlowArtifactLookupException - an exception occured creating the transition


Copyright © 2004-2007. All Rights Reserved.