The Spring Framework

org.springframework.beans.factory.xml
Class AbstractSingleBeanDefinitionParser

java.lang.Object
  extended by org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
      extended by org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
All Implemented Interfaces:
BeanDefinitionParser
Direct Known Subclasses:
AbstractSimpleBeanDefinitionParser, TxAdviceBeanDefinitionParser

public abstract class AbstractSingleBeanDefinitionParser
extends AbstractBeanDefinitionParser

Base class for those BeanDefinitionParser implementations that need to parse and define just a single BeanDefinition.

Extend this parser class when you want to create a single bean definition from an arbitrarily complex XML element. You may wish to consider extending the AbstractSimpleBeanDefinitionParser when you want to create a single bean definition from a relatively simple custom XML element.

The resulting BeanDefinition will be automatically registered with the BeanDefinitionRegistry. Your job simply is to parse the custom XML Element into a single BeanDefinition.

Since:
2.0
Author:
Rob Harrop, Juergen Hoeller, Rick Evans

Field Summary
 
Fields inherited from class org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
ID_ATTRIBUTE
 
Constructor Summary
AbstractSingleBeanDefinitionParser()
           
 
Method Summary
protected  void doParse(Element element, BeanDefinitionBuilder builder)
          Parse the supplied Element and populate the supplied BeanDefinitionBuilder as required.
protected  void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder)
          Parse the supplied Element and populate the supplied BeanDefinitionBuilder as required.
protected abstract  Class getBeanClass(Element element)
          Determine the bean class corresponding to the supplied Element.
protected  AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext)
          Creates a BeanDefinitionBuilder instance for the bean Class and passes it to the doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder) strategy method.
 
Methods inherited from class org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
parse, postProcessComponentDefinition, registerBeanDefinition, resolveId, shouldFireEvents, shouldGenerateId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractSingleBeanDefinitionParser

public AbstractSingleBeanDefinitionParser()
Method Detail

parseInternal

protected final AbstractBeanDefinition parseInternal(Element element,
                                                     ParserContext parserContext)
Creates a BeanDefinitionBuilder instance for the bean Class and passes it to the doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder) strategy method.

Specified by:
parseInternal in class AbstractBeanDefinitionParser
Parameters:
element - the element that is to be parsed into a single BeanDefinition
parserContext - the object encapsulating the current state of the parsing process
Returns:
the BeanDefinition resulting from the parsing of the supplied Element
Throws:
IllegalStateException - if the bean Class returned from getBeanClass(org.w3c.dom.Element) is null
See Also:
doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder)

getBeanClass

protected abstract Class getBeanClass(Element element)
Determine the bean class corresponding to the supplied Element.

Parameters:
element - the Element that is being parsed
Returns:
the Class of the bean that is being defined via parsing the supplied Element (must not be null)
See Also:
parseInternal(org.w3c.dom.Element, ParserContext)

doParse

protected void doParse(Element element,
                       ParserContext parserContext,
                       BeanDefinitionBuilder builder)
Parse the supplied Element and populate the supplied BeanDefinitionBuilder as required.

The default implementation delegates to the doParse version without ParserContext argument.

Parameters:
element - the XML element being parsed
parserContext - the object encapsulating the current state of the parsing process
builder - used to define the BeanDefinition
See Also:
doParse(Element, BeanDefinitionBuilder)

doParse

protected void doParse(Element element,
                       BeanDefinitionBuilder builder)
Parse the supplied Element and populate the supplied BeanDefinitionBuilder as required.

The default implementation does nothing.

Parameters:
element - the XML element being parsed
builder - used to define the BeanDefinition

The Spring Framework

Copyright © 2002-2006 The Spring Framework.