public abstract class

AbstractSingleBeanDefinitionParser

extends AbstractBeanDefinitionParser
java.lang.Object
   ↳ org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
     ↳ org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
Known Direct Subclasses

Class Overview

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.

Summary

[Expand]
Inherited Constants
From class org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
Public Constructors
AbstractSingleBeanDefinitionParser()
Protected Methods
void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder)
Parse the supplied Element and populate the supplied BeanDefinitionBuilder as required.
void doParse(Element element, BeanDefinitionBuilder builder)
Parse the supplied Element and populate the supplied BeanDefinitionBuilder as required.
Class<?> getBeanClass(Element element)
Determine the bean class corresponding to the supplied Element.
String getBeanClassName(Element element)
Determine the bean class name corresponding to the supplied Element.
String getParentName(Element element)
Determine the name for the parent of the currently parsed bean, in case of the current bean being defined as a child bean.
final AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext)
Creates a BeanDefinitionBuilder instance for the bean Class and passes it to the doParse(Element, BeanDefinitionBuilder) strategy method.
[Expand]
Inherited Methods
From class org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
From class java.lang.Object
From interface org.springframework.beans.factory.xml.BeanDefinitionParser

Public Constructors

public AbstractSingleBeanDefinitionParser ()

Also: SpringBeans

Protected Methods

protected void doParse (Element element, ParserContext parserContext, BeanDefinitionBuilder builder)

Also: SpringBeans

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

protected void doParse (Element element, BeanDefinitionBuilder builder)

Also: SpringBeans

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

protected Class<?> getBeanClass (Element element)

Also: SpringBeans

Determine the bean class corresponding to the supplied Element.

Note that, for application classes, it is generally preferable to override getBeanClassName(Element) instead, in order to avoid a direct dependence on the bean implementation class. The BeanDefinitionParser and its NamespaceHandler can be used within an IDE plugin then, even if the application classes are not available on the plugin's classpath.

Parameters
element the Element that is being parsed
Returns
  • the Class of the bean that is being defined via parsing the supplied Element, or null if none

protected String getBeanClassName (Element element)

Also: SpringBeans

Determine the bean class name corresponding to the supplied Element.

Parameters
element the Element that is being parsed
Returns
  • the class name of the bean that is being defined via parsing the supplied Element, or null if none

protected String getParentName (Element element)

Also: SpringBeans

Determine the name for the parent of the currently parsed bean, in case of the current bean being defined as a child bean.

The default implementation returns null, indicating a root bean definition.

Parameters
element the Element that is being parsed
Returns
  • the name of the parent bean for the currently parsed bean, or null if none

protected final AbstractBeanDefinition parseInternal (Element element, ParserContext parserContext)

Also: SpringBeans

Creates a BeanDefinitionBuilder instance for the bean Class and passes it to the doParse(Element, BeanDefinitionBuilder) strategy method.

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