Spring Web Flow

org.springframework.webflow.engine.builder.model
Class FlowModelFlowBuilder

java.lang.Object
  extended by org.springframework.webflow.engine.builder.support.AbstractFlowBuilder
      extended by org.springframework.webflow.engine.builder.model.FlowModelFlowBuilder
All Implemented Interfaces:
FlowBuilder

public class FlowModelFlowBuilder
extends AbstractFlowBuilder

Builds a runtime Flow definition object from a FlowModel.

Author:
Keith Donald

Constructor Summary
FlowModelFlowBuilder(FlowModelHolder flowModelHolder)
          Creates a flow builder that can build a Flow from a FlowModel.
 
Method Summary
 void buildEndActions()
          Builds any end actions to execute when the flow ends.
 void buildExceptionHandlers()
          Creates and adds all exception handlers to the flow built by this builder.
 void buildGlobalTransitions()
          Builds any transitions shared by all states of the flow.
 void buildInputMapper()
          Builds the input mapper responsible for mapping flow input on start.
 void buildOutputMapper()
          Builds the output mapper responsible for mapping flow output on end.
 void buildStartActions()
          Builds any start actions to execute when the flow starts.
 void buildStates()
          Builds the states of the flow.
 void buildVariables()
          Builds any variables initialized by the flow when it starts.
protected  Flow createFlow()
          Factory method that initially creates the flow implementation during flow builder initialization.
protected  void doDispose()
          Shutdown the builder, releasing any resources it holds.
protected  void doInit()
          Initialize this builder.
protected  FlowModel getFlowModel()
           
 java.lang.String getFlowResourceString()
          Returns a string describing the location of the flow resource; the logical location where the source code can be found.
protected  org.springframework.webflow.engine.builder.model.LocalFlowBuilderContext getLocalContext()
           
 boolean hasFlowChanged()
          As the underlying flow managed by this builder changed since the last build occurred?
protected  void registerFlowBeans(org.springframework.beans.factory.config.ConfigurableBeanFactory beanFactory)
          Register beans in the bean factory local to the flow definition being built.
protected  void setLocalContext(org.springframework.webflow.engine.builder.model.LocalFlowBuilderContext localFlowBuilderContext)
           
 java.lang.String toString()
           
 
Methods inherited from class org.springframework.webflow.engine.builder.support.AbstractFlowBuilder
dispose, getContext, getFlow, init
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FlowModelFlowBuilder

public FlowModelFlowBuilder(FlowModelHolder flowModelHolder)
Creates a flow builder that can build a Flow from a FlowModel.

Parameters:
flowModelHolder - the flow model holder
Method Detail

doInit

protected void doInit()
               throws FlowBuilderException
Initialize this builder. This could cause the builder to open a stream to an externalized resource representing the flow definition, for example.

Overrides:
doInit in class AbstractFlowBuilder
Throws:
FlowBuilderException - an exception occurred building the flow

createFlow

protected Flow createFlow()
Description copied from class: AbstractFlowBuilder
Factory method that initially creates the flow implementation during flow builder initialization. Simply delegates to the configured flow artifact factory by default.

Overrides:
createFlow in class AbstractFlowBuilder
Returns:
the flow instance, initially created but not yet built

buildVariables

public void buildVariables()
                    throws FlowBuilderException
Builds any variables initialized by the flow when it starts.

Specified by:
buildVariables in interface FlowBuilder
Overrides:
buildVariables in class AbstractFlowBuilder
Throws:
FlowBuilderException - an exception occurred building the flow

buildInputMapper

public void buildInputMapper()
                      throws FlowBuilderException
Builds the input mapper responsible for mapping flow input on start.

Specified by:
buildInputMapper in interface FlowBuilder
Overrides:
buildInputMapper in class AbstractFlowBuilder
Throws:
FlowBuilderException - an exception occurred building the flow

buildStartActions

public void buildStartActions()
                       throws FlowBuilderException
Builds any start actions to execute when the flow starts.

Specified by:
buildStartActions in interface FlowBuilder
Overrides:
buildStartActions in class AbstractFlowBuilder
Throws:
FlowBuilderException - an exception occurred building the flow

buildStates

public void buildStates()
                 throws FlowBuilderException
Builds the states of the flow.

Specified by:
buildStates in interface FlowBuilder
Specified by:
buildStates in class AbstractFlowBuilder
Throws:
FlowBuilderException - an exception occurred building the flow

buildGlobalTransitions

public void buildGlobalTransitions()
                            throws FlowBuilderException
Builds any transitions shared by all states of the flow.

Specified by:
buildGlobalTransitions in interface FlowBuilder
Overrides:
buildGlobalTransitions in class AbstractFlowBuilder
Throws:
FlowBuilderException - an exception occurred building the flow

buildEndActions

public void buildEndActions()
                     throws FlowBuilderException
Builds any end actions to execute when the flow ends.

Specified by:
buildEndActions in interface FlowBuilder
Overrides:
buildEndActions in class AbstractFlowBuilder
Throws:
FlowBuilderException - an exception occurred building the flow

buildOutputMapper

public void buildOutputMapper()
                       throws FlowBuilderException
Builds the output mapper responsible for mapping flow output on end.

Specified by:
buildOutputMapper in interface FlowBuilder
Overrides:
buildOutputMapper in class AbstractFlowBuilder
Throws:
FlowBuilderException - an exception occurred building the flow

buildExceptionHandlers

public void buildExceptionHandlers()
                            throws FlowBuilderException
Creates and adds all exception handlers to the flow built by this builder.

Specified by:
buildExceptionHandlers in interface FlowBuilder
Overrides:
buildExceptionHandlers in class AbstractFlowBuilder
Throws:
FlowBuilderException - an exception occurred building this flow

hasFlowChanged

public boolean hasFlowChanged()
Description copied from interface: FlowBuilder
As the underlying flow managed by this builder changed since the last build occurred?

Specified by:
hasFlowChanged in interface FlowBuilder
Overrides:
hasFlowChanged in class AbstractFlowBuilder
Returns:
true if changed, false if not

getFlowResourceString

public java.lang.String getFlowResourceString()
Description copied from interface: FlowBuilder
Returns a string describing the location of the flow resource; the logical location where the source code can be found. Used for informational purposes.

Specified by:
getFlowResourceString in interface FlowBuilder
Overrides:
getFlowResourceString in class AbstractFlowBuilder
Returns:
the flow resource string

doDispose

protected void doDispose()
                  throws FlowBuilderException
Shutdown the builder, releasing any resources it holds. A new flow construction process should start with another call to the AbstractFlowBuilder.init(FlowBuilderContext) method.

Overrides:
doDispose in class AbstractFlowBuilder
Throws:
FlowBuilderException - an exception occurred building this flow

getFlowModel

protected FlowModel getFlowModel()

getLocalContext

protected org.springframework.webflow.engine.builder.model.LocalFlowBuilderContext getLocalContext()

setLocalContext

protected void setLocalContext(org.springframework.webflow.engine.builder.model.LocalFlowBuilderContext localFlowBuilderContext)

registerFlowBeans

protected void registerFlowBeans(org.springframework.beans.factory.config.ConfigurableBeanFactory beanFactory)
Register beans in the bean factory local to the flow definition being built.

Subclasses may override this method to customize the population of the bean factory local to the flow definition being built; for example, to register mock implementations of services in a test environment.

Parameters:
beanFactory - the bean factory; register local beans with it using SingletonBeanRegistry.registerSingleton(String, Object)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

Spring Web Flow