Package org.springframework.batch.core.configuration.xml

# Class SimpleFlowFactoryBean

java.lang.Object
org.springframework.batch.core.configuration.xml.SimpleFlowFactoryBean

All Implemented Interfaces:
  `org.springframework.beans.factory.FactoryBean<SimpleFlow>`, `org.springframework.beans.factory.InitializingBean`

public class SimpleFlowFactoryBean extends Object implements org.springframework.beans.factory.FactoryBean<SimpleFlow>, org.springframework.beans.factory.InitializingBean
Convenience factory for SimpleFlow instances for use in XML namespace. It replaces the states in the input with proxies that have a unique name formed from the flow name and the original state name (unless the name is already in that form, in which case it is not modified).

Author:
  Dave Syer, Michael Minella

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `SimpleFlowFactoryBean.DelegateState`
  A State that proxies a delegate and changes its name but leaves its behavior unchanged.

- ## Field Summary

  ### Fields inherited from interface org.springframework.beans.factory.FactoryBean

  `OBJECT_TYPE_ATTRIBUTE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SimpleFlowFactoryBean()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `afterPropertiesSet()`
  Check mandatory properties (name).
  `protected State`
  `createNewStepState(State state, String oldName, String stateName)`
  Provides an extension point to provide alternative `StepState` implementations within a `SimpleFlow`
  `SimpleFlow`
  `getObject()`
  `Class<?>`
  `getObjectType()`
  `boolean`
  `isSingleton()`
  `void`
  `setFlowType(Class<SimpleFlow> flowType)`
  `void`
  `setName(String name)`
  The name of the flow that is created by this factory.
  `void`
  `setStateTransitionComparator(Comparator<StateTransition> stateTransitionComparator)`
  `void`
  `setStateTransitions(List<StateTransition> stateTransitions)`
  The raw state transitions for the flow.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### SimpleFlowFactoryBean

    public SimpleFlowFactoryBean()

- ## Method Details

  - ### setStateTransitionComparator

    public void setStateTransitionComparator(Comparator<StateTransition> stateTransitionComparator)
    Parameters:
      `stateTransitionComparator` - `Comparator` implementation that addresses the ordering of state evaluation

  - ### setFlowType

    public void setFlowType(Class<SimpleFlow> flowType)
    Parameters:
      `flowType` - Used to inject the type of flow (regular Spring Batch or JSR-352)

  - ### setName

    public void setName(String name)
    The name of the flow that is created by this factory.
    Parameters:
      `name` - the value of the name

  - ### setStateTransitions

    public void setStateTransitions(List<StateTransition> stateTransitions)
    The raw state transitions for the flow. They will be transformed into proxies that have the same behavior but unique names prefixed with the flow name.
    Parameters:
      `stateTransitions` - the list of transitions

  - ### afterPropertiesSet

    public void afterPropertiesSet() throws Exception
    Check mandatory properties (name).
    Specified by:
      `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`
    Throws:
      `Exception` - thrown if error occurs.

  - ### getObject

    public SimpleFlow getObject() throws Exception
    Specified by:
      `getObject` in interface `org.springframework.beans.factory.FactoryBean<SimpleFlow>`
    Throws:
      `Exception`

  - ### createNewStepState

    protected State createNewStepState(State state, String oldName, String stateName)
    Provides an extension point to provide alternative `StepState` implementations within a `SimpleFlow`
    Parameters:
      `state` - The state that will be used to create the StepState
      `oldName` - The name to be replaced
      `stateName` - The name for the new State
    Returns:
      a state for the requested data

  - ### getObjectType

    public Class<?> getObjectType()
    Specified by:
      `getObjectType` in interface `org.springframework.beans.factory.FactoryBean<SimpleFlow>`

  - ### isSingleton

    public boolean isSingleton()
    Specified by:
      `isSingleton` in interface `org.springframework.beans.factory.FactoryBean<SimpleFlow>`