org.springframework.webflow.engine.builder
Class FlowAssembler

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

public class FlowAssembler
extends java.lang.Object

A director for assembling flows, delegating to a FlowBuilder to construct a flow. This class encapsulates the algorithm for using a FlowBuilder to assemble a Flow properly. It acts as the director in the classic GoF builder pattern.

Flow assemblers may be used in a standalone, programmatic fashion as follows:

     FlowBuilder builder = ...;
     Flow flow = new FlowAssembler("myFlow", builder).assembleFlow();
 

Author:
Keith Donald, Erwin Vervaet
See Also:
FlowBuilder

Constructor Summary
FlowAssembler(java.lang.String flowId, AttributeMap flowAttributes, FlowBuilder flowBuilder)
          Create a new flow assembler that will direct Flow assembly using the specified builder strategy.
FlowAssembler(java.lang.String flowId, FlowBuilder flowBuilder)
          Create a new flow assembler that will direct Flow assembly using the specified builder strategy.
 
Method Summary
 Flow assembleFlow()
          Assembles the flow, directing the construction process by delegating to the configured FlowBuilder.
protected  void directAssembly()
          Build all parts of the flow by directing flow assembly by the flow builder.
 AttributeMap getFlowAttributes()
          Returns externally assigned attributes that can be used to affect flow construction.
 FlowBuilder getFlowBuilder()
          Returns the flow builder strategy used to construct the flow from its component parts.
 java.lang.String getFlowId()
          Returns the identifier to assign to the flow.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FlowAssembler

public FlowAssembler(java.lang.String flowId,
                     FlowBuilder flowBuilder)
Create a new flow assembler that will direct Flow assembly using the specified builder strategy.

Parameters:
flowId - the flow id to assign
flowBuilder - the builder the factory will use to build flows

FlowAssembler

public FlowAssembler(java.lang.String flowId,
                     AttributeMap flowAttributes,
                     FlowBuilder flowBuilder)
Create a new flow assembler that will direct Flow assembly using the specified builder strategy.

Parameters:
flowId - the flow id to assign
flowAttributes - externally assigned flow attributes that can affect flow construction
flowBuilder - the builder the factory will use to build flows
Method Detail

getFlowId

public java.lang.String getFlowId()
Returns the identifier to assign to the flow.


getFlowAttributes

public AttributeMap getFlowAttributes()
Returns externally assigned attributes that can be used to affect flow construction.


getFlowBuilder

public FlowBuilder getFlowBuilder()
Returns the flow builder strategy used to construct the flow from its component parts.


assembleFlow

public Flow assembleFlow()
                  throws FlowBuilderException
Assembles the flow, directing the construction process by delegating to the configured FlowBuilder. Every call to this method will assemble the Flow instance.

This will drive the flow construction process as described in the FlowBuilder JavaDoc, starting with builder initialisation using FlowBuilder.init(String, AttributeMap) and finishing by cleaning up the builder with a call to FlowBuilder.dispose().

Returns:
the constructed flow
Throws:
FlowBuilderException - when flow assembly fails

directAssembly

protected void directAssembly()
                       throws FlowBuilderException
Build all parts of the flow by directing flow assembly by the flow builder.

Throws:
FlowBuilderException - when flow assembly fails


Copyright © 2004-2007. All Rights Reserved.