public class BeanDefinitionParserDelegate
extends java.lang.Object
BeanDefinitionParsers
or
BeanDefinitionDecorators
.ParserContext
,
DefaultBeanDefinitionDocumentReader
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ABSTRACT_ATTRIBUTE |
static java.lang.String |
ARG_TYPE_ELEMENT |
static java.lang.String |
ARG_TYPE_MATCH_ATTRIBUTE |
static java.lang.String |
ARRAY_ELEMENT |
static java.lang.String |
AUTOWIRE_ATTRIBUTE |
static java.lang.String |
AUTOWIRE_AUTODETECT_VALUE |
static java.lang.String |
AUTOWIRE_BY_NAME_VALUE |
static java.lang.String |
AUTOWIRE_BY_TYPE_VALUE |
static java.lang.String |
AUTOWIRE_CANDIDATE_ATTRIBUTE |
static java.lang.String |
AUTOWIRE_CONSTRUCTOR_VALUE |
static java.lang.String |
AUTOWIRE_NO_VALUE |
static java.lang.String |
BEAN_ELEMENT |
static java.lang.String |
BEAN_REF_ATTRIBUTE |
static java.lang.String |
BEANS_NAMESPACE_URI |
static java.lang.String |
CLASS_ATTRIBUTE |
static java.lang.String |
CONSTRUCTOR_ARG_ELEMENT |
static java.lang.String |
DEFAULT_AUTOWIRE_ATTRIBUTE |
static java.lang.String |
DEFAULT_AUTOWIRE_CANDIDATES_ATTRIBUTE |
static java.lang.String |
DEFAULT_DESTROY_METHOD_ATTRIBUTE |
static java.lang.String |
DEFAULT_INIT_METHOD_ATTRIBUTE |
static java.lang.String |
DEFAULT_LAZY_INIT_ATTRIBUTE |
static java.lang.String |
DEFAULT_MERGE_ATTRIBUTE |
static java.lang.String |
DEFAULT_VALUE |
static java.lang.String |
DEPENDS_ON_ATTRIBUTE |
static java.lang.String |
DESCRIPTION_ELEMENT |
static java.lang.String |
DESTROY_METHOD_ATTRIBUTE |
static java.lang.String |
ENTRY_ELEMENT |
static java.lang.String |
FACTORY_BEAN_ATTRIBUTE |
static java.lang.String |
FACTORY_METHOD_ATTRIBUTE |
static java.lang.String |
FALSE_VALUE |
static java.lang.String |
ID_ATTRIBUTE |
static java.lang.String |
IDREF_ELEMENT |
static java.lang.String |
INDEX_ATTRIBUTE |
static java.lang.String |
INIT_METHOD_ATTRIBUTE |
static java.lang.String |
KEY_ATTRIBUTE |
static java.lang.String |
KEY_ELEMENT |
static java.lang.String |
KEY_REF_ATTRIBUTE |
static java.lang.String |
KEY_TYPE_ATTRIBUTE |
static java.lang.String |
LAZY_INIT_ATTRIBUTE |
static java.lang.String |
LIST_ELEMENT |
protected Log |
logger |
static java.lang.String |
LOOKUP_METHOD_ELEMENT |
static java.lang.String |
MAP_ELEMENT |
static java.lang.String |
MERGE_ATTRIBUTE |
static java.lang.String |
META_ELEMENT |
static java.lang.String |
MULTI_VALUE_ATTRIBUTE_DELIMITERS |
static java.lang.String |
NAME_ATTRIBUTE |
static java.lang.String |
NULL_ELEMENT |
static java.lang.String |
PARENT_ATTRIBUTE |
static java.lang.String |
PARENT_REF_ATTRIBUTE |
static java.lang.String |
PRIMARY_ATTRIBUTE |
static java.lang.String |
PROP_ELEMENT |
static java.lang.String |
PROPERTY_ELEMENT |
static java.lang.String |
PROPS_ELEMENT |
static java.lang.String |
QUALIFIER_ATTRIBUTE_ELEMENT |
static java.lang.String |
QUALIFIER_ELEMENT |
static java.lang.String |
REF_ATTRIBUTE |
static java.lang.String |
REF_ELEMENT |
static java.lang.String |
REPLACED_METHOD_ELEMENT |
static java.lang.String |
REPLACER_ATTRIBUTE |
static java.lang.String |
SCOPE_ATTRIBUTE |
static java.lang.String |
SET_ELEMENT |
static java.lang.String |
TRUE_VALUE
Value of a T/F attribute that represents true.
|
static java.lang.String |
TYPE_ATTRIBUTE |
static java.lang.String |
VALUE_ATTRIBUTE |
static java.lang.String |
VALUE_ELEMENT |
static java.lang.String |
VALUE_REF_ATTRIBUTE |
static java.lang.String |
VALUE_TYPE_ATTRIBUTE |
Constructor and Description |
---|
BeanDefinitionParserDelegate(XmlReaderContext readerContext)
Create a new BeanDefinitionParserDelegate associated with the supplied
XmlReaderContext . |
Modifier and Type | Method and Description |
---|---|
protected TypedStringValue |
buildTypedStringValue(java.lang.String value,
java.lang.String targetTypeName)
Build a typed String value Object for the given raw value.
|
protected java.lang.Object |
buildTypedStringValueForMap(java.lang.String value,
java.lang.String defaultTypeName,
org.w3c.dom.Element entryEle)
Build a typed String value Object for the given raw value.
|
protected void |
checkNameUniqueness(java.lang.String beanName,
java.util.List<java.lang.String> aliases,
org.w3c.dom.Element beanElement)
Validate that the specified bean name and aliases have not been used already
within the current level of beans element nesting.
|
protected AbstractBeanDefinition |
createBeanDefinition(java.lang.String className,
java.lang.String parentName)
Create a bean definition for the given class name and parent name.
|
BeanDefinitionHolder |
decorateBeanDefinitionIfRequired(org.w3c.dom.Element ele,
BeanDefinitionHolder definitionHolder) |
BeanDefinitionHolder |
decorateBeanDefinitionIfRequired(org.w3c.dom.Element ele,
BeanDefinitionHolder definitionHolder,
BeanDefinition containingBd) |
BeanDefinitionHolder |
decorateIfRequired(org.w3c.dom.Node node,
BeanDefinitionHolder originalDef,
BeanDefinition containingBd) |
protected void |
error(java.lang.String message,
org.w3c.dom.Element source)
Report an error with the given message for the given source element.
|
protected void |
error(java.lang.String message,
org.w3c.dom.Element source,
java.lang.Throwable cause)
Report an error with the given message for the given source element.
|
protected void |
error(java.lang.String message,
org.w3c.dom.Node source)
Report an error with the given message for the given source element.
|
protected java.lang.Object |
extractSource(org.w3c.dom.Element ele)
Invoke the
SourceExtractor
to pull the source metadata from the supplied Element . |
java.lang.String[] |
getAutowireCandidatePatterns()
Return any patterns provided in the 'default-autowire-candidates'
attribute of the top-level
<beans/> element. |
int |
getAutowireMode(java.lang.String attValue) |
BeanDefinitionDefaults |
getBeanDefinitionDefaults()
Return the default settings for bean definitions as indicated within
the attributes of the top-level
<beans/> element. |
DocumentDefaultsDefinition |
getDefaults()
Return the defaults definition object.
|
java.lang.String |
getLocalName(org.w3c.dom.Node node)
Get the local name for the supplied
Node . |
java.lang.String |
getNamespaceURI(org.w3c.dom.Node node)
Get the namespace URI for the supplied node.
|
XmlReaderContext |
getReaderContext()
Get the
XmlReaderContext associated with this helper instance. |
void |
initDefaults(org.w3c.dom.Element root)
Initialize the default settings assuming a
null parent delegate. |
void |
initDefaults(org.w3c.dom.Element root,
BeanDefinitionParserDelegate parent)
Initialize the default lazy-init, autowire, dependency check settings,
init-method, destroy-method and merge settings.
|
boolean |
isDefaultNamespace(org.w3c.dom.Node node) |
boolean |
isDefaultNamespace(java.lang.String namespaceUri) |
boolean |
nodeNameEquals(org.w3c.dom.Node node,
java.lang.String desiredName)
Determine whether the name of the supplied node is equal to the supplied name.
|
java.lang.Object |
parseArrayElement(org.w3c.dom.Element arrayEle,
BeanDefinition bd)
Parse an array element.
|
AbstractBeanDefinition |
parseBeanDefinitionAttributes(org.w3c.dom.Element ele,
java.lang.String beanName,
BeanDefinition containingBean,
AbstractBeanDefinition bd)
Apply the attributes of the given bean element to the given bean * definition.
|
BeanDefinitionHolder |
parseBeanDefinitionElement(org.w3c.dom.Element ele)
Parses the supplied
<bean> element. |
BeanDefinitionHolder |
parseBeanDefinitionElement(org.w3c.dom.Element ele,
BeanDefinition containingBean)
Parses the supplied
<bean> element. |
AbstractBeanDefinition |
parseBeanDefinitionElement(org.w3c.dom.Element ele,
java.lang.String beanName,
BeanDefinition containingBean)
Parse the bean definition itself, without regard to name or aliases.
|
protected void |
parseCollectionElements(org.w3c.dom.NodeList elementNodes,
java.util.Collection<java.lang.Object> target,
BeanDefinition bd,
java.lang.String defaultElementType) |
void |
parseConstructorArgElement(org.w3c.dom.Element ele,
BeanDefinition bd)
Parse a constructor-arg element.
|
void |
parseConstructorArgElements(org.w3c.dom.Element beanEle,
BeanDefinition bd)
Parse constructor-arg sub-elements of the given bean element.
|
BeanDefinition |
parseCustomElement(org.w3c.dom.Element ele) |
BeanDefinition |
parseCustomElement(org.w3c.dom.Element ele,
BeanDefinition containingBd) |
java.lang.Object |
parseIdRefElement(org.w3c.dom.Element ele)
Return a typed String value Object for the given 'idref' element.
|
protected java.lang.Object |
parseKeyElement(org.w3c.dom.Element keyEle,
BeanDefinition bd,
java.lang.String defaultKeyTypeName)
Parse a key sub-element of a map element.
|
java.util.List<java.lang.Object> |
parseListElement(org.w3c.dom.Element collectionEle,
BeanDefinition bd)
Parse a list element.
|
void |
parseLookupOverrideSubElements(org.w3c.dom.Element beanEle,
MethodOverrides overrides)
Parse lookup-override sub-elements of the given bean element.
|
java.util.Map<java.lang.Object,java.lang.Object> |
parseMapElement(org.w3c.dom.Element mapEle,
BeanDefinition bd)
Parse a map element.
|
boolean |
parseMergeAttribute(org.w3c.dom.Element collectionElement)
Parse the merge attribute of a collection element, if any.
|
void |
parseMetaElements(org.w3c.dom.Element ele,
BeanMetadataAttributeAccessor attributeAccessor) |
void |
parsePropertyElement(org.w3c.dom.Element ele,
BeanDefinition bd)
Parse a property element.
|
void |
parsePropertyElements(org.w3c.dom.Element beanEle,
BeanDefinition bd)
Parse property sub-elements of the given bean element.
|
java.lang.Object |
parsePropertySubElement(org.w3c.dom.Element ele,
BeanDefinition bd) |
java.lang.Object |
parsePropertySubElement(org.w3c.dom.Element ele,
BeanDefinition bd,
java.lang.String defaultValueType)
Parse a value, ref or collection sub-element of a property or
constructor-arg element.
|
java.lang.Object |
parsePropertyValue(org.w3c.dom.Element ele,
BeanDefinition bd,
java.lang.String propertyName)
Get the value of a property element.
|
java.util.Properties |
parsePropsElement(org.w3c.dom.Element propsEle)
Parse a props element.
|
void |
parseQualifierElement(org.w3c.dom.Element ele,
AbstractBeanDefinition bd)
Parse a qualifier element.
|
void |
parseQualifierElements(org.w3c.dom.Element beanEle,
AbstractBeanDefinition bd)
Parse qualifier sub-elements of the given bean element.
|
void |
parseReplacedMethodSubElements(org.w3c.dom.Element beanEle,
MethodOverrides overrides)
Parse replaced-method sub-elements of the given bean element.
|
java.util.Set<java.lang.Object> |
parseSetElement(org.w3c.dom.Element collectionEle,
BeanDefinition bd)
Parse a set element.
|
java.lang.Object |
parseValueElement(org.w3c.dom.Element ele,
java.lang.String defaultTypeName)
Return a typed String value Object for the given value element.
|
protected void |
populateDefaults(DocumentDefaultsDefinition defaults,
DocumentDefaultsDefinition parentDefaults,
org.w3c.dom.Element root)
Populate the given DocumentDefaultsDefinition instance with the default lazy-init,
autowire, dependency check settings, init-method, destroy-method and merge settings.
|
public static final java.lang.String BEANS_NAMESPACE_URI
public static final java.lang.String MULTI_VALUE_ATTRIBUTE_DELIMITERS
public static final java.lang.String TRUE_VALUE
public static final java.lang.String FALSE_VALUE
public static final java.lang.String DEFAULT_VALUE
public static final java.lang.String DESCRIPTION_ELEMENT
public static final java.lang.String AUTOWIRE_NO_VALUE
public static final java.lang.String AUTOWIRE_BY_NAME_VALUE
public static final java.lang.String AUTOWIRE_BY_TYPE_VALUE
public static final java.lang.String AUTOWIRE_CONSTRUCTOR_VALUE
public static final java.lang.String AUTOWIRE_AUTODETECT_VALUE
public static final java.lang.String NAME_ATTRIBUTE
public static final java.lang.String BEAN_ELEMENT
public static final java.lang.String META_ELEMENT
public static final java.lang.String ID_ATTRIBUTE
public static final java.lang.String PARENT_ATTRIBUTE
public static final java.lang.String CLASS_ATTRIBUTE
public static final java.lang.String ABSTRACT_ATTRIBUTE
public static final java.lang.String SCOPE_ATTRIBUTE
public static final java.lang.String LAZY_INIT_ATTRIBUTE
public static final java.lang.String AUTOWIRE_ATTRIBUTE
public static final java.lang.String AUTOWIRE_CANDIDATE_ATTRIBUTE
public static final java.lang.String PRIMARY_ATTRIBUTE
public static final java.lang.String DEPENDS_ON_ATTRIBUTE
public static final java.lang.String INIT_METHOD_ATTRIBUTE
public static final java.lang.String DESTROY_METHOD_ATTRIBUTE
public static final java.lang.String FACTORY_METHOD_ATTRIBUTE
public static final java.lang.String FACTORY_BEAN_ATTRIBUTE
public static final java.lang.String CONSTRUCTOR_ARG_ELEMENT
public static final java.lang.String INDEX_ATTRIBUTE
public static final java.lang.String TYPE_ATTRIBUTE
public static final java.lang.String VALUE_TYPE_ATTRIBUTE
public static final java.lang.String KEY_TYPE_ATTRIBUTE
public static final java.lang.String PROPERTY_ELEMENT
public static final java.lang.String REF_ATTRIBUTE
public static final java.lang.String VALUE_ATTRIBUTE
public static final java.lang.String LOOKUP_METHOD_ELEMENT
public static final java.lang.String REPLACED_METHOD_ELEMENT
public static final java.lang.String REPLACER_ATTRIBUTE
public static final java.lang.String ARG_TYPE_ELEMENT
public static final java.lang.String ARG_TYPE_MATCH_ATTRIBUTE
public static final java.lang.String REF_ELEMENT
public static final java.lang.String IDREF_ELEMENT
public static final java.lang.String BEAN_REF_ATTRIBUTE
public static final java.lang.String PARENT_REF_ATTRIBUTE
public static final java.lang.String VALUE_ELEMENT
public static final java.lang.String NULL_ELEMENT
public static final java.lang.String ARRAY_ELEMENT
public static final java.lang.String LIST_ELEMENT
public static final java.lang.String SET_ELEMENT
public static final java.lang.String MAP_ELEMENT
public static final java.lang.String ENTRY_ELEMENT
public static final java.lang.String KEY_ELEMENT
public static final java.lang.String KEY_ATTRIBUTE
public static final java.lang.String KEY_REF_ATTRIBUTE
public static final java.lang.String VALUE_REF_ATTRIBUTE
public static final java.lang.String PROPS_ELEMENT
public static final java.lang.String PROP_ELEMENT
public static final java.lang.String MERGE_ATTRIBUTE
public static final java.lang.String QUALIFIER_ELEMENT
public static final java.lang.String QUALIFIER_ATTRIBUTE_ELEMENT
public static final java.lang.String DEFAULT_LAZY_INIT_ATTRIBUTE
public static final java.lang.String DEFAULT_MERGE_ATTRIBUTE
public static final java.lang.String DEFAULT_AUTOWIRE_ATTRIBUTE
public static final java.lang.String DEFAULT_AUTOWIRE_CANDIDATES_ATTRIBUTE
public static final java.lang.String DEFAULT_INIT_METHOD_ATTRIBUTE
public static final java.lang.String DEFAULT_DESTROY_METHOD_ATTRIBUTE
protected final Log logger
public BeanDefinitionParserDelegate(XmlReaderContext readerContext)
XmlReaderContext
.public final XmlReaderContext getReaderContext()
XmlReaderContext
associated with this helper instance.@Nullable protected java.lang.Object extractSource(org.w3c.dom.Element ele)
SourceExtractor
to pull the source metadata from the supplied Element
.protected void error(java.lang.String message, org.w3c.dom.Node source)
protected void error(java.lang.String message, org.w3c.dom.Element source)
protected void error(java.lang.String message, org.w3c.dom.Element source, java.lang.Throwable cause)
public void initDefaults(org.w3c.dom.Element root)
null
parent delegate.public void initDefaults(org.w3c.dom.Element root, @Nullable BeanDefinitionParserDelegate parent)
protected void populateDefaults(DocumentDefaultsDefinition defaults, @Nullable DocumentDefaultsDefinition parentDefaults, org.w3c.dom.Element root)
parentDefaults
in case the defaults are not explicitly set locally.defaults
- the defaults to populateparentDefaults
- the parent BeanDefinitionParserDelegate (if any) defaults to fall back toroot
- the root element of the current bean definition document (or nested beans element)public DocumentDefaultsDefinition getDefaults()
public BeanDefinitionDefaults getBeanDefinitionDefaults()
<beans/>
element.@Nullable public java.lang.String[] getAutowireCandidatePatterns()
<beans/>
element.@Nullable public BeanDefinitionHolder parseBeanDefinitionElement(org.w3c.dom.Element ele)
<bean>
element. May return null
if there were errors during parse. Errors are reported to the
ProblemReporter
.@Nullable public BeanDefinitionHolder parseBeanDefinitionElement(org.w3c.dom.Element ele, @Nullable BeanDefinition containingBean)
<bean>
element. May return null
if there were errors during parse. Errors are reported to the
ProblemReporter
.protected void checkNameUniqueness(java.lang.String beanName, java.util.List<java.lang.String> aliases, org.w3c.dom.Element beanElement)
@Nullable public AbstractBeanDefinition parseBeanDefinitionElement(org.w3c.dom.Element ele, java.lang.String beanName, @Nullable BeanDefinition containingBean)
null
if problems occurred during the parsing of the bean definition.public AbstractBeanDefinition parseBeanDefinitionAttributes(org.w3c.dom.Element ele, java.lang.String beanName, @Nullable BeanDefinition containingBean, AbstractBeanDefinition bd)
ele
- bean declaration elementbeanName
- bean namecontainingBean
- containing bean definitionprotected AbstractBeanDefinition createBeanDefinition(@Nullable java.lang.String className, @Nullable java.lang.String parentName) throws java.lang.ClassNotFoundException
className
- the name of the bean classparentName
- the name of the bean's parent beanjava.lang.ClassNotFoundException
- if bean class resolution was attempted but failedpublic void parseMetaElements(org.w3c.dom.Element ele, BeanMetadataAttributeAccessor attributeAccessor)
public int getAutowireMode(java.lang.String attValue)
public void parseConstructorArgElements(org.w3c.dom.Element beanEle, BeanDefinition bd)
public void parsePropertyElements(org.w3c.dom.Element beanEle, BeanDefinition bd)
public void parseQualifierElements(org.w3c.dom.Element beanEle, AbstractBeanDefinition bd)
public void parseLookupOverrideSubElements(org.w3c.dom.Element beanEle, MethodOverrides overrides)
public void parseReplacedMethodSubElements(org.w3c.dom.Element beanEle, MethodOverrides overrides)
public void parseConstructorArgElement(org.w3c.dom.Element ele, BeanDefinition bd)
public void parsePropertyElement(org.w3c.dom.Element ele, BeanDefinition bd)
public void parseQualifierElement(org.w3c.dom.Element ele, AbstractBeanDefinition bd)
@Nullable public java.lang.Object parsePropertyValue(org.w3c.dom.Element ele, BeanDefinition bd, @Nullable java.lang.String propertyName)
@Nullable public java.lang.Object parsePropertySubElement(org.w3c.dom.Element ele, @Nullable BeanDefinition bd)
@Nullable public java.lang.Object parsePropertySubElement(org.w3c.dom.Element ele, @Nullable BeanDefinition bd, @Nullable java.lang.String defaultValueType)
ele
- subelement of property element; we don't know which yetdefaultValueType
- the default type (class name) for any
<value>
tag that might be created@Nullable public java.lang.Object parseIdRefElement(org.w3c.dom.Element ele)
public java.lang.Object parseValueElement(org.w3c.dom.Element ele, @Nullable java.lang.String defaultTypeName)
protected TypedStringValue buildTypedStringValue(java.lang.String value, @Nullable java.lang.String targetTypeName) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
TypedStringValue
public java.lang.Object parseArrayElement(org.w3c.dom.Element arrayEle, @Nullable BeanDefinition bd)
public java.util.List<java.lang.Object> parseListElement(org.w3c.dom.Element collectionEle, @Nullable BeanDefinition bd)
public java.util.Set<java.lang.Object> parseSetElement(org.w3c.dom.Element collectionEle, @Nullable BeanDefinition bd)
protected void parseCollectionElements(org.w3c.dom.NodeList elementNodes, java.util.Collection<java.lang.Object> target, @Nullable BeanDefinition bd, java.lang.String defaultElementType)
public java.util.Map<java.lang.Object,java.lang.Object> parseMapElement(org.w3c.dom.Element mapEle, @Nullable BeanDefinition bd)
protected final java.lang.Object buildTypedStringValueForMap(java.lang.String value, java.lang.String defaultTypeName, org.w3c.dom.Element entryEle)
TypedStringValue
@Nullable protected java.lang.Object parseKeyElement(org.w3c.dom.Element keyEle, @Nullable BeanDefinition bd, java.lang.String defaultKeyTypeName)
public java.util.Properties parsePropsElement(org.w3c.dom.Element propsEle)
public boolean parseMergeAttribute(org.w3c.dom.Element collectionElement)
@Nullable public BeanDefinition parseCustomElement(org.w3c.dom.Element ele)
@Nullable public BeanDefinition parseCustomElement(org.w3c.dom.Element ele, @Nullable BeanDefinition containingBd)
public BeanDefinitionHolder decorateBeanDefinitionIfRequired(org.w3c.dom.Element ele, BeanDefinitionHolder definitionHolder)
public BeanDefinitionHolder decorateBeanDefinitionIfRequired(org.w3c.dom.Element ele, BeanDefinitionHolder definitionHolder, @Nullable BeanDefinition containingBd)
public BeanDefinitionHolder decorateIfRequired(org.w3c.dom.Node node, BeanDefinitionHolder originalDef, @Nullable BeanDefinition containingBd)
@Nullable public java.lang.String getNamespaceURI(org.w3c.dom.Node node)
The default implementation uses Node.getNamespaceURI()
.
Subclasses may override the default implementation to provide a
different namespace identification mechanism.
node
- the nodepublic java.lang.String getLocalName(org.w3c.dom.Node node)
Node
.
The default implementation calls Node.getLocalName()
.
Subclasses may override the default implementation to provide a
different mechanism for getting the local name.
node
- the Node
public boolean nodeNameEquals(org.w3c.dom.Node node, java.lang.String desiredName)
The default implementation checks the supplied desired name against both
Node.getNodeName()
and Node.getLocalName()
.
Subclasses may override the default implementation to provide a different mechanism for comparing node names.
node
- the node to comparedesiredName
- the name to check forpublic boolean isDefaultNamespace(@Nullable java.lang.String namespaceUri)
public boolean isDefaultNamespace(org.w3c.dom.Node node)