public class BlueprintParser
extends java.lang.Object
BeanDefinitionParserDelegate.
Note: Due to its stateful nature, this class is not thread safe.
Note: Since the namespace is important when parsing elements and since mixed elements, from both rfc124 and
Spring can coexist in the same file, reusing the delegate isn't entirely
possible since the two state needs to be kept in synch.| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
BEAN |
static java.lang.String |
COMPONENT_ID_ATTR |
static java.lang.String |
CONSTRUCTOR_ARG |
static java.lang.String |
DECLARED_SCOPE |
private BlueprintDefaultsDefinition |
defaults |
private static java.lang.String |
EAGER_INIT_VALUE |
private static java.lang.String |
FACTORY_REF_ATTR |
private static java.lang.String |
LAZY_INIT_ATTR |
private static java.lang.String |
LAZY_INIT_VALUE |
private static org.apache.commons.logging.Log |
log
logger
|
static java.lang.String |
NAMESPACE_URI |
private org.springframework.beans.factory.xml.ParserContext |
parserContext |
private org.springframework.beans.factory.parsing.ParseState |
parseState |
private java.util.Collection<java.lang.String> |
usedNames |
| Modifier | Constructor and Description |
|---|---|
|
BlueprintParser() |
private |
BlueprintParser(org.springframework.beans.factory.xml.ParserContext parserContext)
Constructs a new
ComponentParser instance. |
|
BlueprintParser(org.springframework.beans.factory.parsing.ParseState parseState,
java.util.Collection<java.lang.String> usedNames) |
| Modifier and Type | Method and Description |
|---|---|
private org.springframework.beans.factory.config.TypedStringValue |
buildTypedStringValue(java.lang.String value,
java.lang.String targetTypeName)
Build a typed String value Object for the given raw value.
|
private 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.
|
private boolean |
checkNameUniqueness(java.lang.String beanName,
java.util.Collection<java.lang.String> aliases,
java.util.Collection<java.lang.String> usedNames)
Validate that the specified bean name and aliases have not been used already.
|
private void |
error(java.lang.String message,
org.w3c.dom.Node source)
Reports an error with the given message for the given source element.
|
private void |
error(java.lang.String message,
org.w3c.dom.Node source,
java.lang.Throwable cause)
Reports an error with the given message for the given source element.
|
private java.lang.Object |
extractSource(org.w3c.dom.Element ele) |
private BlueprintDefaultsDefinition |
getDefaults(org.w3c.dom.Element ele) |
org.springframework.beans.factory.config.BeanDefinition |
parse(org.w3c.dom.Element componentElement,
org.springframework.beans.factory.xml.ParserContext parserContext) |
java.lang.Object |
parseArrayElement(org.w3c.dom.Element arrayEle,
org.springframework.beans.factory.config.BeanDefinition bd)
Parse an array element.
|
org.springframework.beans.factory.config.BeanDefinitionHolder |
parseAsHolder(org.w3c.dom.Element componentElement,
org.springframework.beans.factory.xml.ParserContext parserContext) |
private org.springframework.beans.factory.support.AbstractBeanDefinition |
parseAttributes(org.w3c.dom.Element ele,
java.lang.String beanName,
org.springframework.beans.factory.support.AbstractBeanDefinition beanDefinition) |
private org.springframework.beans.factory.support.AbstractBeanDefinition |
parseBeanDefinitionElement(org.w3c.dom.Element ele,
java.lang.String beanName,
org.springframework.beans.factory.config.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,
org.springframework.beans.factory.config.BeanDefinition bd,
java.lang.String defaultElementType) |
private org.springframework.beans.factory.config.BeanDefinitionHolder |
parseComponentDefinitionElement(org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition containingBean)
Parses the supplied
<bean> element. |
private void |
parseConstructorArgElement(org.w3c.dom.Element ele,
org.springframework.beans.factory.support.AbstractBeanDefinition beanDefinition) |
private void |
parseConstructorArgElements(org.w3c.dom.Element ele,
org.springframework.beans.factory.support.AbstractBeanDefinition beanDefinition)
Parsers contructor arguments.
|
private java.lang.Object |
parseIdRefElement(org.w3c.dom.Element ele) |
private java.lang.Object |
parseKeyElement(org.w3c.dom.Element keyEle,
org.springframework.beans.factory.config.BeanDefinition bd,
java.lang.String defaultKeyTypeName)
Parse a key sub-element of a map element.
|
java.util.List<?> |
parseListElement(org.w3c.dom.Element collectionEle,
org.springframework.beans.factory.config.BeanDefinition bd)
Parse a list element.
|
java.util.Map<?,?> |
parseMapElement(org.w3c.dom.Element mapEle,
org.springframework.beans.factory.config.BeanDefinition bd)
Parse a map element.
|
private boolean |
parseMergeAttribute(org.w3c.dom.Element element) |
private void |
parsePropertyElement(org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition bd) |
private void |
parsePropertyElements(org.w3c.dom.Element ele,
org.springframework.beans.factory.support.AbstractBeanDefinition beanDefinition)
Parses property elements.
|
static java.util.Map<?,?> |
parsePropertyMapElement(org.springframework.beans.factory.xml.ParserContext parserContext,
org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition bd) |
static java.util.Set<?> |
parsePropertySetElement(org.springframework.beans.factory.xml.ParserContext parserContext,
org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition bd) |
private java.lang.Object |
parsePropertySubElement(org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition bd,
java.lang.String defaultValueType)
Parse a value, ref or collection sub-element of a property or constructor-arg element.
|
static java.lang.Object |
parsePropertySubElement(org.springframework.beans.factory.xml.ParserContext parserContext,
org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition bd) |
private java.lang.Object |
parsePropertyValue(org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition bd,
java.lang.String propertyName) |
java.util.Properties |
parsePropsElement(org.w3c.dom.Element propsEle)
Parse a props element.
|
private java.lang.Object |
parseRefElement(org.w3c.dom.Element ele) |
java.util.Set<?> |
parseSetElement(org.w3c.dom.Element collectionEle,
org.springframework.beans.factory.config.BeanDefinition bd)
Parse a set element.
|
private java.lang.Object |
parseValueElement(org.w3c.dom.Element ele,
java.lang.String defaultTypeName)
Return a typed String value Object for the given value element.
|
private static final org.apache.commons.logging.Log log
public static final java.lang.String BEAN
public static final java.lang.String COMPONENT_ID_ATTR
public static final java.lang.String CONSTRUCTOR_ARG
private static final java.lang.String FACTORY_REF_ATTR
private static final java.lang.String LAZY_INIT_ATTR
private static final java.lang.String LAZY_INIT_VALUE
private static final java.lang.String EAGER_INIT_VALUE
public static final java.lang.String NAMESPACE_URI
public static final java.lang.String DECLARED_SCOPE
private final org.springframework.beans.factory.parsing.ParseState parseState
private final java.util.Collection<java.lang.String> usedNames
private org.springframework.beans.factory.xml.ParserContext parserContext
private BlueprintDefaultsDefinition defaults
public BlueprintParser()
private BlueprintParser(org.springframework.beans.factory.xml.ParserContext parserContext)
ComponentParser instance. Used by certain reusable static methods.parserContext - public BlueprintParser(org.springframework.beans.factory.parsing.ParseState parseState,
java.util.Collection<java.lang.String> usedNames)
public org.springframework.beans.factory.config.BeanDefinitionHolder parseAsHolder(org.w3c.dom.Element componentElement,
org.springframework.beans.factory.xml.ParserContext parserContext)
public org.springframework.beans.factory.config.BeanDefinition parse(org.w3c.dom.Element componentElement,
org.springframework.beans.factory.xml.ParserContext parserContext)
private org.springframework.beans.factory.config.BeanDefinitionHolder parseComponentDefinitionElement(org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition containingBean)
<bean> element. May return null if there were errors during
parse. Errors are reported to the ProblemReporter.private org.springframework.beans.factory.support.AbstractBeanDefinition parseBeanDefinitionElement(org.w3c.dom.Element ele,
java.lang.String beanName,
org.springframework.beans.factory.config.BeanDefinition containingBean)
null if problems
occurred during the parse of the bean definition.private org.springframework.beans.factory.support.AbstractBeanDefinition parseAttributes(org.w3c.dom.Element ele,
java.lang.String beanName,
org.springframework.beans.factory.support.AbstractBeanDefinition beanDefinition)
private boolean checkNameUniqueness(java.lang.String beanName,
java.util.Collection<java.lang.String> aliases,
java.util.Collection<java.lang.String> usedNames)
private void parseConstructorArgElements(org.w3c.dom.Element ele,
org.springframework.beans.factory.support.AbstractBeanDefinition beanDefinition)
ele - beanDefinition - parserContext - private void parseConstructorArgElement(org.w3c.dom.Element ele,
org.springframework.beans.factory.support.AbstractBeanDefinition beanDefinition)
private void parsePropertyElements(org.w3c.dom.Element ele,
org.springframework.beans.factory.support.AbstractBeanDefinition beanDefinition)
ele - beanDefinition - parserContext - private void parsePropertyElement(org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition bd)
private java.lang.Object parsePropertyValue(org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition bd,
java.lang.String propertyName)
public static java.lang.Object parsePropertySubElement(org.springframework.beans.factory.xml.ParserContext parserContext,
org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition bd)
public static java.util.Map<?,?> parsePropertyMapElement(org.springframework.beans.factory.xml.ParserContext parserContext,
org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition bd)
public static java.util.Set<?> parsePropertySetElement(org.springframework.beans.factory.xml.ParserContext parserContext,
org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition bd)
private java.lang.Object parsePropertySubElement(org.w3c.dom.Element ele,
org.springframework.beans.factory.config.BeanDefinition bd,
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
createdprivate java.lang.Object parseRefElement(org.w3c.dom.Element ele)
private java.lang.Object parseIdRefElement(org.w3c.dom.Element ele)
private java.lang.Object parseValueElement(org.w3c.dom.Element ele,
java.lang.String defaultTypeName)
ele - elementdefaultTypeName - type class nameprivate org.springframework.beans.factory.config.TypedStringValue buildTypedStringValue(java.lang.String value,
java.lang.String targetTypeName)
throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundExceptionTypedStringValuepublic java.lang.Object parseArrayElement(org.w3c.dom.Element arrayEle,
org.springframework.beans.factory.config.BeanDefinition bd)
public java.util.List<?> parseListElement(org.w3c.dom.Element collectionEle,
org.springframework.beans.factory.config.BeanDefinition bd)
public java.util.Set<?> parseSetElement(org.w3c.dom.Element collectionEle,
org.springframework.beans.factory.config.BeanDefinition bd)
protected void parseCollectionElements(org.w3c.dom.NodeList elementNodes,
java.util.Collection<java.lang.Object> target,
org.springframework.beans.factory.config.BeanDefinition bd,
java.lang.String defaultElementType)
public java.util.Map<?,?> parseMapElement(org.w3c.dom.Element mapEle,
org.springframework.beans.factory.config.BeanDefinition bd)
public java.util.Properties parsePropsElement(org.w3c.dom.Element propsEle)
private boolean parseMergeAttribute(org.w3c.dom.Element element)
private java.lang.Object buildTypedStringValueForMap(java.lang.String value,
java.lang.String defaultTypeName,
org.w3c.dom.Element entryEle)
TypedStringValueprivate java.lang.Object parseKeyElement(org.w3c.dom.Element keyEle,
org.springframework.beans.factory.config.BeanDefinition bd,
java.lang.String defaultKeyTypeName)
private java.lang.Object extractSource(org.w3c.dom.Element ele)
private void error(java.lang.String message,
org.w3c.dom.Node source)
private void error(java.lang.String message,
org.w3c.dom.Node source,
java.lang.Throwable cause)
private BlueprintDefaultsDefinition getDefaults(org.w3c.dom.Element ele)