|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface NamespaceHandler
Base interface used by the DefaultBeanDefinitionDocumentReader
for
handling custom namespaces in a Spring XML configuration file.
Implementations are expected to return implementations of the
BeanDefinitionParser
interface for custom top-level tags and
implementations of the BeanDefinitionDecorator
interface for
custom nested tags.
The parser will call parse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext)
when it encounters a custom tag
directly under the <beans>
tags and decorate(org.w3c.dom.Node, org.springframework.beans.factory.config.BeanDefinitionHolder, org.springframework.beans.factory.xml.ParserContext)
when
it encounters a custom tag directly under a <bean>
tag.
Developers writing their own custom element extensions typically will
not implement this interface drectly, but rather make use of the provided
NamespaceHandlerSupport
class.
DefaultBeanDefinitionDocumentReader
,
NamespaceHandlerResolver
Method Summary | |
---|---|
BeanDefinitionHolder |
decorate(Node source,
BeanDefinitionHolder definition,
ParserContext parserContext)
Parse the specified Node and decorate the supplied
BeanDefinitionHolder , returning the decorated definition. |
void |
init()
Invoked by the DefaultBeanDefinitionDocumentReader after
construction but before any custom elements are parsed. |
BeanDefinition |
parse(Element element,
ParserContext parserContext)
Parse the specified Element and register any resulting
BeanDefinitions with the
BeanDefinitionRegistry
that is embedded in the supplied ParserContext . |
Method Detail |
---|
void init()
DefaultBeanDefinitionDocumentReader
after
construction but before any custom elements are parsed.
NamespaceHandlerSupport.registerBeanDefinitionParser(String, BeanDefinitionParser)
BeanDefinition parse(Element element, ParserContext parserContext)
Element
and register any resulting
BeanDefinitions
with the
BeanDefinitionRegistry
that is embedded in the supplied ParserContext
.
Implementations should return the primary BeanDefinition
that results from the parse phase if they wish to be used nested
inside (for example) a <property>
tag.
Implementations may return null
if they will
not be used in a nested scenario.
element
- the element that is to be parsed into one or more BeanDefinitions
parserContext
- the object encapsulating the current state of the parsing process
BeanDefinition
(can be null
as explained above)BeanDefinitionHolder decorate(Node source, BeanDefinitionHolder definition, ParserContext parserContext)
Node
and decorate the supplied
BeanDefinitionHolder
, returning the decorated definition.
The Node
may be either an Attr
or an
Element
, depending on whether a custom attribute or element
is being parsed.
Implementations may choose to return a completely new definition,
which will replace the original definition in the resulting
BeanFactory
.
The supplied ParserContext
can be used to register any
additional beans needed to support the main definition.
source
- the source element or attribute that is to be parseddefinition
- the current bean definitionparserContext
- the object encapsulating the current state of the parsing process
|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |