Package org.springframework.beans.factory.xml

# Class SimplePropertyNamespaceHandler

java.lang.Object
org.springframework.beans.factory.xml.SimplePropertyNamespaceHandler

All Implemented Interfaces:
  `NamespaceHandler`

public class SimplePropertyNamespaceHandler extends Object implements NamespaceHandler
Simple `NamespaceHandler` implementation that maps custom attributes directly through to bean properties. An important point to note is that this `NamespaceHandler` does not have a corresponding schema since there is no way to know in advance all possible attribute names.

An example of the usage of this `NamespaceHandler` is shown below:

     <bean id="rob" class="..TestBean" p:name="Rob Harrop" p:spouse-ref="sally"/>

Here the '`p:name`' corresponds directly to the '`name`' property on class '`TestBean`'. The '`p:spouse-ref`' attributes corresponds to the '`spouse`' property and, rather than being the concrete value, it contains the name of the bean that will be injected into that property.

Since:
  2.0
Author:
  Rob Harrop, Juergen Hoeller

## Constructor Summary

Constructors
Constructor
Description
`SimplePropertyNamespaceHandler()`

## Method Summary

Modifier and Type
Method
Description
`BeanDefinitionHolder`
`decorate(Node node, 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`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### SimplePropertyNamespaceHandler

public SimplePropertyNamespaceHandler()

## Method Details

### init

public void init()
Description copied from interface: `NamespaceHandler`
Invoked by the `DefaultBeanDefinitionDocumentReader` after construction but before any custom elements are parsed.

Specified by:
  `init` in interface `NamespaceHandler`
See Also:
  - `NamespaceHandlerSupport.registerBeanDefinitionParser(String, BeanDefinitionParser)`

### parse

@Nullable public BeanDefinition parse(Element element, ParserContext parserContext)
Description copied from interface: `NamespaceHandler`
Parse the specified `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.

Specified by:
  `parse` in interface `NamespaceHandler`
Parameters:
  `element` - the element that is to be parsed into one or more `BeanDefinitions`
  `parserContext` - the object encapsulating the current state of the parsing process
Returns:
  the primary `BeanDefinition` (can be `null` as explained above)

### decorate

public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext)
Description copied from interface: `NamespaceHandler`
Parse the specified `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.

Specified by:
  `decorate` in interface `NamespaceHandler`
Parameters:
  `node` - the source element or attribute that is to be parsed
  `definition` - the current bean definition
  `parserContext` - the object encapsulating the current state of the parsing process
Returns:
  the decorated definition (to be registered in the BeanFactory), or simply the original bean definition if no decoration is required. A `null` value is strictly speaking invalid, but will be leniently treated like the case where the original bean definition gets returned.