Class NamespaceHandlerSupport

java.lang.Object
org.springframework.beans.factory.xml.NamespaceHandlerSupport
All Implemented Interfaces:
NamespaceHandler
Direct Known Subclasses:
AopNamespaceHandler, CacheNamespaceHandler, ContextNamespaceHandler, JdbcNamespaceHandler, JeeNamespaceHandler, JmsNamespaceHandler, LangNamespaceHandler, MvcNamespaceHandler, OxmNamespaceHandler, TaskNamespaceHandler, TxNamespaceHandler, UtilNamespaceHandler, WebSocketNamespaceHandler

public abstract class NamespaceHandlerSupport extends Object implements NamespaceHandler
Support class for implementing custom NamespaceHandlers. Parsing and decorating of individual Nodes is done via BeanDefinitionParser and BeanDefinitionDecorator strategy interfaces, respectively.

Provides the registerBeanDefinitionParser(String, BeanDefinitionParser) and registerBeanDefinitionDecorator(String, BeanDefinitionDecorator) methods for registering a BeanDefinitionParser or BeanDefinitionDecorator to handle a specific element.

Since:
2.0
Author:
Rob Harrop, Juergen Hoeller
See Also:
  • Constructor Details

    • NamespaceHandlerSupport

      public NamespaceHandlerSupport()
  • Method Details

    • parse

      public @Nullable BeanDefinition parse(Element element, ParserContext parserContext)
      Parses the supplied Element by delegating to the BeanDefinitionParser that is registered for that Element.
      Specified by:
      parse in interface NamespaceHandler
      Parameters:
      element - the element that is to be parsed into one or more BeanDefinitions
      parserContext - the object encapsulating the current state of the parsing process
      Returns:
      the primary BeanDefinition (can be null as explained above)
    • decorate

      public @Nullable BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext)
      Decorates the supplied Node by delegating to the BeanDefinitionDecorator that is registered to handle that Node.
      Specified by:
      decorate in interface NamespaceHandler
      Parameters:
      node - the source element or attribute that is to be parsed
      definition - the current bean definition
      parserContext - the object encapsulating the current state of the parsing process
      Returns:
      the decorated definition (to be registered in the BeanFactory), or simply the original bean definition if no decoration is required. A null value is strictly speaking invalid, but will be leniently treated like the case where the original bean definition gets returned.
    • registerBeanDefinitionParser

      protected final void registerBeanDefinitionParser(String elementName, BeanDefinitionParser parser)
      Subclasses can call this to register the supplied BeanDefinitionParser to handle the specified element. The element name is the local (non-namespace qualified) name.
    • registerBeanDefinitionDecorator

      protected final void registerBeanDefinitionDecorator(String elementName, BeanDefinitionDecorator dec)
      Subclasses can call this to register the supplied BeanDefinitionDecorator to handle the specified element. The element name is the local (non-namespace qualified) name.
    • registerBeanDefinitionDecoratorForAttribute

      protected final void registerBeanDefinitionDecoratorForAttribute(String attrName, BeanDefinitionDecorator dec)
      Subclasses can call this to register the supplied BeanDefinitionDecorator to handle the specified attribute. The attribute name is the local (non-namespace qualified) name.