Class NamespaceUtils
- java.lang.Object
-
- org.springframework.amqp.rabbit.config.NamespaceUtils
-
public abstract class NamespaceUtils extends Object
Shared utility methods for namespace parsers.- Author:
- Mark Pollack, Dave Syer, Gary Russell
-
-
Field Summary
Fields Modifier and Type Field Description static String
BASE_PACKAGE
static String
METHOD_ATTRIBUTE
static String
ORDER
static String
REF_ATTRIBUTE
-
Constructor Summary
Constructors Constructor Description NamespaceUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
addConstructorArgBooleanValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, boolean defaultValue)
Populates the bean definition constructor argument with the boolean value of that attribute if it is defined in the given element or else uses the default provided.static boolean
addConstructorArgParentRefIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)
Populates the bean definition constructor argument with a reference to a bean with parent id equal to the attribute if it is defined in the given element.static boolean
addConstructorArgRefIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)
Populates the bean definition constructor argument with a reference to a bean with id equal to the attribute if it is defined in the given element.static boolean
addConstructorArgValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)
Populates the bean definition constructor argument with the value of that attribute if it is defined in the given element.static String
createElementDescription(Element element)
Provides a user friendly description of an element based on its node name and, if available, its "id" attribute value.static BeanDefinition
createExpressionDefIfAttributeDefined(String expressionElementName, Element element)
static BeanDefinition
createExpressionDefinitionFromValueOrExpression(String valueElementName, String expressionElementName, ParserContext parserContext, Element element, boolean oneRequired)
static boolean
isAttributeDefined(Element element, String attributeName)
Checks the attribute to see if it is defined in the given element.static void
parseDeclarationControls(Element element, BeanDefinitionBuilder builder)
Parses 'auto-declare' and 'declared-by' attributes.static boolean
setReferenceIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)
Populates the bean definition property corresponding to the specified attributeName with the reference to a bean identified by the value of that attribute if the attribute is defined in the given element.static boolean
setReferenceIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, String propertyName)
Populates the specified bean definition property with the reference to a bean.static boolean
setValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)
Populates the bean definition property corresponding to the specified attributeName with the value of that attribute if it is defined in the given element.static boolean
setValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, String propertyName)
Populates the specified bean definition property with the value of the attribute whose name is provided if that attribute is defined in the given element.
-
-
-
Field Detail
-
BASE_PACKAGE
public static final String BASE_PACKAGE
- See Also:
- Constant Field Values
-
REF_ATTRIBUTE
public static final String REF_ATTRIBUTE
- See Also:
- Constant Field Values
-
METHOD_ATTRIBUTE
public static final String METHOD_ATTRIBUTE
- See Also:
- Constant Field Values
-
ORDER
public static final String ORDER
- See Also:
- Constant Field Values
-
-
Method Detail
-
setValueIfAttributeDefined
public static boolean setValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, String propertyName)
Populates the specified bean definition property with the value of the attribute whose name is provided if that attribute is defined in the given element.- Parameters:
builder
- the bean definition builder to be configuredelement
- the XML element where the attribute should be definedattributeName
- the name of the attribute whose value will be used to populate the propertypropertyName
- the name of the property to be populated- Returns:
- true if defined.
-
setValueIfAttributeDefined
public static boolean setValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)
Populates the bean definition property corresponding to the specified attributeName with the value of that attribute if it is defined in the given element.The property name will be the camel-case equivalent of the lower case hyphen separated attribute (e.g. the "foo-bar" attribute would match the "fooBar" property).
- Parameters:
builder
- the bean definition builder to be configuredelement
- the XML element where the attribute should be definedattributeName
- the name of the attribute whose value will be set on the property- Returns:
- true if defined.
- See Also:
Conventions.attributeNameToPropertyName(String)
-
isAttributeDefined
public static boolean isAttributeDefined(Element element, String attributeName)
Checks the attribute to see if it is defined in the given element.- Parameters:
element
- the XML element where the attribute should be definedattributeName
- the name of the attribute whose value will be used as a constructor argument- Returns:
- true if defined.
-
addConstructorArgValueIfAttributeDefined
public static boolean addConstructorArgValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)
Populates the bean definition constructor argument with the value of that attribute if it is defined in the given element.- Parameters:
builder
- the bean definition builder to be configuredelement
- the XML element where the attribute should be definedattributeName
- the name of the attribute whose value will be used as a constructor argument- Returns:
- true if defined.
-
addConstructorArgBooleanValueIfAttributeDefined
public static void addConstructorArgBooleanValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, boolean defaultValue)
Populates the bean definition constructor argument with the boolean value of that attribute if it is defined in the given element or else uses the default provided.- Parameters:
builder
- the bean definition builder to be configuredelement
- the XML element where the attribute should be definedattributeName
- the name of the attribute whose value will be used as a constructor argumentdefaultValue
- the default value to use if the attirbute is not set
-
addConstructorArgRefIfAttributeDefined
public static boolean addConstructorArgRefIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)
Populates the bean definition constructor argument with a reference to a bean with id equal to the attribute if it is defined in the given element.- Parameters:
builder
- the bean definition builder to be configuredelement
- the XML element where the attribute should be definedattributeName
- the name of the attribute whose value will be used to set the reference- Returns:
- true if defined.
-
addConstructorArgParentRefIfAttributeDefined
public static boolean addConstructorArgParentRefIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)
Populates the bean definition constructor argument with a reference to a bean with parent id equal to the attribute if it is defined in the given element.- Parameters:
builder
- the bean definition builder to be configuredelement
- the XML element where the attribute should be definedattributeName
- the name of the attribute whose value will be used to set the reference- Returns:
- true if defined.
-
setReferenceIfAttributeDefined
public static boolean setReferenceIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, String propertyName)
Populates the specified bean definition property with the reference to a bean. The bean reference is identified by the value from the attribute whose name is provided if that attribute is defined in the given element.- Parameters:
builder
- the bean definition builder to be configuredelement
- the XML element where the attribute should be definedattributeName
- the name of the attribute whose value will be used as a bean reference to populate the propertypropertyName
- the name of the property to be populated- Returns:
- true if the attribute is present and has text
-
setReferenceIfAttributeDefined
public static boolean setReferenceIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)
Populates the bean definition property corresponding to the specified attributeName with the reference to a bean identified by the value of that attribute if the attribute is defined in the given element.The property name will be the camel-case equivalent of the lower case hyphen separated attribute (e.g. the "foo-bar" attribute would match the "fooBar" property).
- Parameters:
builder
- the bean definition builder to be configuredelement
- the XML element where the attribute should be definedattributeName
- the name of the attribute whose value will be used as a bean reference to populate the property- Returns:
- true if defined.
- See Also:
Conventions.attributeNameToPropertyName(String)
-
createElementDescription
public static String createElementDescription(Element element)
Provides a user friendly description of an element based on its node name and, if available, its "id" attribute value. This is useful for creating error messages from within bean definition parsers.- Parameters:
element
- The element.- Returns:
- The description.
-
parseDeclarationControls
public static void parseDeclarationControls(Element element, BeanDefinitionBuilder builder)
Parses 'auto-declare' and 'declared-by' attributes.- Parameters:
element
- The element.builder
- The builder.
-
createExpressionDefinitionFromValueOrExpression
public static BeanDefinition createExpressionDefinitionFromValueOrExpression(String valueElementName, String expressionElementName, ParserContext parserContext, Element element, boolean oneRequired)
-
createExpressionDefIfAttributeDefined
public static BeanDefinition createExpressionDefIfAttributeDefined(String expressionElementName, Element element)
-
-