Class AbstractFlowParser
- java.lang.Object
- org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
- org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
- org.springframework.batch.core.configuration.xml.AbstractFlowParser
- All Implemented Interfaces:
org.springframework.beans.factory.xml.BeanDefinitionParser
- Direct Known Subclasses:
FlowParser
,InlineFlowParser
,TopLevelFlowParser
public abstract class AbstractFlowParser extends org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
- Author:
- Dave Syer, Michael Minella, Chris Schaefer
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
DECISION_ELE
protected static java.lang.String
END_ELE
protected static int
endCounter
protected static java.lang.String
EXIT_CODE_ATTR
protected static java.lang.String
FAIL_ELE
protected static java.lang.String
FLOW_ELE
protected static java.lang.String
ID_ATTR
protected static java.lang.String
NEXT_ATTR
protected static java.lang.String
NEXT_ELE
protected static java.lang.String
ON_ATTR
protected static java.lang.String
RESTART_ATTR
protected static java.lang.String
SPLIT_ELE
protected static java.lang.String
STEP_ELE
protected static java.lang.String
STOP_ELE
protected static java.lang.String
TO_ATTR
Constructor Summary
Constructors Constructor Description AbstractFlowParser()
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static java.util.Collection<org.springframework.beans.factory.config.BeanDefinition>
createTransition(FlowExecutionStatus status, java.lang.String on, java.lang.String next, java.lang.String exitCode, org.springframework.beans.factory.config.BeanDefinition stateDef, org.springframework.beans.factory.xml.ParserContext parserContext, boolean abandon)
protected void
doParse(org.w3c.dom.Element element, org.springframework.beans.factory.xml.ParserContext parserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder builder)
protected void
findAllReachableElements(java.lang.String startElement, java.util.Map<java.lang.String,java.util.Set<java.lang.String>> reachableElementMap, java.util.Set<java.lang.String> accumulator)
Find all of the elements reachable from the startElement.protected static FlowExecutionStatus
getBatchStatusFromEndTransitionName(java.lang.String elementName)
protected java.lang.Class<?>
getBeanClass(org.w3c.dom.Element element)
static java.util.Collection<org.springframework.beans.factory.config.BeanDefinition>
getNextElements(org.springframework.beans.factory.xml.ParserContext parserContext, java.lang.String stepId, org.springframework.beans.factory.config.BeanDefinition stateDef, org.w3c.dom.Element element)
static java.util.Collection<org.springframework.beans.factory.config.BeanDefinition>
getNextElements(org.springframework.beans.factory.xml.ParserContext parserContext, org.springframework.beans.factory.config.BeanDefinition stateDef, org.w3c.dom.Element element)
static org.springframework.beans.factory.config.BeanDefinition
getStateTransitionReference(org.springframework.beans.factory.xml.ParserContext parserContext, org.springframework.beans.factory.config.BeanDefinition stateDefinition, java.lang.String on, java.lang.String next)
protected void
setJobFactoryRef(java.lang.String jobFactoryRef)
Convenience method for subclasses to set the job factory reference if it is available (null is fine, but the quality of error reports is better if it is available).protected static void
verifyUniquePattern(org.w3c.dom.Element transitionElement, java.util.List<java.lang.String> patterns, org.w3c.dom.Element element, org.springframework.beans.factory.xml.ParserContext parserContext)
Methods inherited from class org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
doParse, getBeanClassName, getParentName, parseInternal
Field Detail
ID_ATTR
protected static final java.lang.String ID_ATTR
- See Also:
- Constant Field Values
STEP_ELE
protected static final java.lang.String STEP_ELE
- See Also:
- Constant Field Values
FLOW_ELE
protected static final java.lang.String FLOW_ELE
- See Also:
- Constant Field Values
DECISION_ELE
protected static final java.lang.String DECISION_ELE
- See Also:
- Constant Field Values
SPLIT_ELE
protected static final java.lang.String SPLIT_ELE
- See Also:
- Constant Field Values
NEXT_ATTR
protected static final java.lang.String NEXT_ATTR
- See Also:
- Constant Field Values
NEXT_ELE
protected static final java.lang.String NEXT_ELE
- See Also:
- Constant Field Values
END_ELE
protected static final java.lang.String END_ELE
- See Also:
- Constant Field Values
FAIL_ELE
protected static final java.lang.String FAIL_ELE
- See Also:
- Constant Field Values
STOP_ELE
protected static final java.lang.String STOP_ELE
- See Also:
- Constant Field Values
ON_ATTR
protected static final java.lang.String ON_ATTR
- See Also:
- Constant Field Values
TO_ATTR
protected static final java.lang.String TO_ATTR
- See Also:
- Constant Field Values
RESTART_ATTR
protected static final java.lang.String RESTART_ATTR
- See Also:
- Constant Field Values
EXIT_CODE_ATTR
protected static final java.lang.String EXIT_CODE_ATTR
- See Also:
- Constant Field Values
endCounter
protected static int endCounter
Method Detail
setJobFactoryRef
protected void setJobFactoryRef(java.lang.String jobFactoryRef)
Convenience method for subclasses to set the job factory reference if it is available (null is fine, but the quality of error reports is better if it is available).- Parameters:
jobFactoryRef
- name of the ref
getBeanClass
protected java.lang.Class<?> getBeanClass(org.w3c.dom.Element element)
- Overrides:
getBeanClass
in classorg.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
doParse
protected void doParse(org.w3c.dom.Element element, org.springframework.beans.factory.xml.ParserContext parserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder builder)
- Overrides:
doParse
in classorg.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
- Parameters:
element
- the top level element containing a flow definitionparserContext
- theParserContext
findAllReachableElements
protected void findAllReachableElements(java.lang.String startElement, java.util.Map<java.lang.String,java.util.Set<java.lang.String>> reachableElementMap, java.util.Set<java.lang.String> accumulator)
Find all of the elements reachable from the startElement.- Parameters:
startElement
- name of the element to start fromreachableElementMap
- Map of elements that can be reached from the startElementaccumulator
- a collection of reachable element names
getNextElements
public static java.util.Collection<org.springframework.beans.factory.config.BeanDefinition> getNextElements(org.springframework.beans.factory.xml.ParserContext parserContext, org.springframework.beans.factory.config.BeanDefinition stateDef, org.w3c.dom.Element element)
- Parameters:
parserContext
- the parser context for the bean factorystateDef
- The bean definition for the current stateelement
- the <step/gt; element to parse- Returns:
- a collection of
StateTransition
references
getNextElements
public static java.util.Collection<org.springframework.beans.factory.config.BeanDefinition> getNextElements(org.springframework.beans.factory.xml.ParserContext parserContext, java.lang.String stepId, org.springframework.beans.factory.config.BeanDefinition stateDef, org.w3c.dom.Element element)
- Parameters:
parserContext
- the parser context for the bean factorystepId
- the id of the current state if it is a step state, null otherwisestateDef
- The bean definition for the current stateelement
- the <step/gt; element to parse- Returns:
- a collection of
StateTransition
references
verifyUniquePattern
protected static void verifyUniquePattern(org.w3c.dom.Element transitionElement, java.util.List<java.lang.String> patterns, org.w3c.dom.Element element, org.springframework.beans.factory.xml.ParserContext parserContext)
- Parameters:
transitionElement
- The element to parsepatterns
- a list of patterns on state transitions for this elementelement
-Element
representing the source.parserContext
- the parser context for the bean factory
createTransition
protected static java.util.Collection<org.springframework.beans.factory.config.BeanDefinition> createTransition(FlowExecutionStatus status, java.lang.String on, java.lang.String next, java.lang.String exitCode, org.springframework.beans.factory.config.BeanDefinition stateDef, org.springframework.beans.factory.xml.ParserContext parserContext, boolean abandon)
- Parameters:
status
- The batch status that this transition will set. Use BatchStatus.UNKNOWN if not applicable.on
- The pattern that this transition should match. Use null for "no restriction" (same as "*").next
- The state to which this transition should go. Use null if not applicable.exitCode
- The exit code that this transition will set. Use null to default to batchStatus.stateDef
- The bean definition for the current stateparserContext
- the parser context for the bean factoryabandon
- the abandon flag to be used by the transition.- Returns:
- a collection of
StateTransition
references
getBatchStatusFromEndTransitionName
protected static FlowExecutionStatus getBatchStatusFromEndTransitionName(java.lang.String elementName)
- Parameters:
elementName
- An end transition element name- Returns:
- the BatchStatus corresponding to the transition name
getStateTransitionReference
public static org.springframework.beans.factory.config.BeanDefinition getStateTransitionReference(org.springframework.beans.factory.xml.ParserContext parserContext, org.springframework.beans.factory.config.BeanDefinition stateDefinition, java.lang.String on, java.lang.String next)
- Parameters:
parserContext
- the parser contextstateDefinition
- a reference to the state implementationon
- the pattern valuenext
- the next step id- Returns:
- a bean definition for a
StateTransition