|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.riotfamily.common.beans.xml.AbstractGenericBeanDefinitionParser
public abstract class AbstractGenericBeanDefinitionParser
Class similar to Spring's AbstractSingleBeanDefinitionParser
.
Supports registering aliased beans and decoration of nested beans.
Field Summary | |
---|---|
static String |
ID_ATTRIBUTE
Constant for the id attribute |
Constructor Summary | |
---|---|
AbstractGenericBeanDefinitionParser(Class<?> beanClass)
|
|
AbstractGenericBeanDefinitionParser(String className)
|
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. |
BeanDefinition |
parse(Element element,
ParserContext parserContext)
|
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. |
protected void |
postProcessComponentDefinition(BeanComponentDefinition componentDefinition)
Hook method called after the primary parsing of a BeanComponentDefinition but before the
BeanComponentDefinition has been registered with a
BeanDefinitionRegistry . |
protected void |
registerBeanDefinition(BeanDefinitionHolder definition,
BeanDefinitionRegistry registry)
Register the supplied bean with the supplied
registry . |
protected String |
resolveAlias(Element element,
AbstractBeanDefinition definition,
ParserContext parserContext)
Resolve the alias for the supplied BeanDefinition . |
protected String[] |
resolveAliases(Element element,
AbstractBeanDefinition definition,
ParserContext parserContext)
Resolve the aliases for the supplied BeanDefinition . |
protected String |
resolveId(Element element,
AbstractBeanDefinition definition,
ParserContext parserContext)
Resolve the ID for the supplied BeanDefinition . |
void |
setDecorate(boolean decorate)
Sets whether the bean should be decorated. |
protected boolean |
shouldFireEvents()
Controls whether this parser is supposed to fire a BeanComponentDefinition
event after parsing the bean definition. |
protected boolean |
shouldGenerateId()
Should an ID be generated instead of read from the passed in Element ? |
protected boolean |
shouldGenerateIdAsFallback()
Should an ID be generated instead if the passed in Element does not
specify an "id" attribute explicitly? |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String ID_ATTRIBUTE
Constructor Detail |
---|
public AbstractGenericBeanDefinitionParser(Class<?> beanClass)
public AbstractGenericBeanDefinitionParser(String className)
Method Detail |
---|
public void setDecorate(boolean decorate)
true
.
public final BeanDefinition parse(Element element, ParserContext parserContext)
parse
in interface BeanDefinitionParser
protected final AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext)
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.
element
- the element that is to be parsed into a single BeanDefinitionparserContext
- the object encapsulating the current state of the parsing process
Element
IllegalStateException
- if the bean Class
returned from
#getBeanClass(org.w3c.dom.Element)
is null
doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder)
protected String resolveId(Element element, AbstractBeanDefinition definition, ParserContext parserContext) throws BeanDefinitionStoreException
BeanDefinition
.
When using generation
, a name is generated automatically.
Otherwise, the ID is extracted from the "id" attribute, potentially with a
fallback
to a generated id.
element
- the element that the bean definition has been built fromdefinition
- the bean definition to be registeredparserContext
- the object encapsulating the current state of the parsing process;
provides access to a BeanDefinitionRegistry
BeanDefinitionStoreException
- if no unique name could be generated
for the given bean definitionprotected String[] resolveAliases(Element element, AbstractBeanDefinition definition, ParserContext parserContext)
BeanDefinition
. The default
implementation delegates the call to
resolveAlias(Element, AbstractBeanDefinition, ParserContext)
and tokenizes the returned String.
protected String resolveAlias(Element element, AbstractBeanDefinition definition, ParserContext parserContext)
BeanDefinition
. The returned
String may contain multiple bean-names separated by commas, semicolons
or spaces. The default implementation returns null
protected void registerBeanDefinition(BeanDefinitionHolder definition, BeanDefinitionRegistry registry)
bean
with the supplied
registry
.
Subclasses can override this method to control whether or not the supplied
bean
is actually even registered, or to
register even more beans.
The default implementation registers the supplied bean
with the supplied registry
only if the isNested
parameter is false
, because one typically does not want inner beans
to be registered as top level beans.
definition
- the bean definition to be registeredregistry
- the registry that the bean is to be registered withBeanDefinitionReaderUtils.registerBeanDefinition(BeanDefinitionHolder, BeanDefinitionRegistry)
protected boolean shouldGenerateId()
Element
?
Disabled by default; subclasses can override this to enable ID generation. Note that this flag is about always generating an ID; the parser won't even check for an "id" attribute in this case.
protected boolean shouldGenerateIdAsFallback()
Element
does not
specify an "id" attribute explicitly?
Disabled by default; subclasses can override this to enable ID generation as fallback: The parser will first check for an "id" attribute in this case, only falling back to a generated ID if no value was specified.
protected boolean shouldFireEvents()
BeanComponentDefinition
event after parsing the bean definition.
This implementation returns true
by default; that is,
an event will be fired when a bean definition has been completely parsed.
Override this to return false
in order to suppress the event.
true
in order to fire a component registration event
after parsing the bean definition; false
to suppress the eventpostProcessComponentDefinition(org.springframework.beans.factory.parsing.BeanComponentDefinition)
,
ReaderContext.fireComponentRegistered(org.springframework.beans.factory.parsing.ComponentDefinition)
protected void postProcessComponentDefinition(BeanComponentDefinition componentDefinition)
BeanComponentDefinition
but before the
BeanComponentDefinition
has been registered with a
BeanDefinitionRegistry
.
Derived classes can override this method to supply any custom logic that is to be executed after all the parsing is finished.
The default implementation is a no-op.
componentDefinition
- the BeanComponentDefinition
that is to be processedprotected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder)
Element
and populate the supplied
BeanDefinitionBuilder
as required.
The default implementation delegates to the doParse
version without ParserContext argument.
element
- the XML element being parsedparserContext
- the object encapsulating the current state of the parsing processbuilder
- used to define the BeanDefinition
doParse(Element, BeanDefinitionBuilder)
protected void doParse(Element element, BeanDefinitionBuilder builder)
Element
and populate the supplied
BeanDefinitionBuilder
as required.
The default implementation does nothing.
element
- the XML element being parsedbuilder
- used to define the BeanDefinition
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |