org.springframework.beans

## Class BeanMetadataAttributeAccessor

- java.lang.Object
- - org.springframework.core.AttributeAccessorSupport
  - - org.springframework.beans.BeanMetadataAttributeAccessor

All Implemented Interfaces:
  Serializable, BeanMetadataElement, AttributeAccessor

Direct Known Subclasses:
  AbstractBeanDefinition, AutowireCandidateQualifier, PropertyValue

    public class BeanMetadataAttributeAccessor
    extends AttributeAccessorSupport
    implements BeanMetadataElement

Extension of `AttributeAccessorSupport`, holding attributes as `BeanMetadataAttribute` objects in order to keep track of the definition source.

Since:
  2.5
Author:
  Juergen Hoeller
See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`BeanMetadataAttributeAccessor()`

### Method Summary

Methods
`void` `addMetadataAttribute(BeanMetadataAttribute attribute)` Add the given BeanMetadataAttribute to this accessor's set of attributes.
`Object` `getAttribute(String name)` Get the value of the attribute identified by `name`.
`BeanMetadataAttribute` `getMetadataAttribute(String name)` Look up the given BeanMetadataAttribute in this accessor's set of attributes.
`Object` `getSource()` Return the configuration source `Object` for this metadata element (may be `null`).
`Object` `removeAttribute(String name)` Remove the attribute identified by `name` and return its value.
`void` `setAttribute(String name, Object value)` Set the attribute defined by `name` to the supplied `value`.
`void` `setSource(Object source)` Set the configuration source `Object` for this metadata element.

### Methods inherited from class org.springframework.core.AttributeAccessorSupport

`attributeNames, copyAttributesFrom, equals, hasAttribute, hashCode`

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

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

### Constructor Detail

#### BeanMetadataAttributeAccessor

    public BeanMetadataAttributeAccessor()

### Method Detail

#### setSource

    public void setSource(Object source)

Set the configuration source `Object` for this metadata element.

The exact type of the object will depend on the configuration mechanism used.

#### getSource

    public Object getSource()

Description copied from interface: `BeanMetadataElement`
Return the configuration source `Object` for this metadata element (may be `null`).

Specified by:
  `getSource` in interface `BeanMetadataElement`

#### addMetadataAttribute

    public void addMetadataAttribute(BeanMetadataAttribute attribute)

Add the given BeanMetadataAttribute to this accessor's set of attributes.

Parameters:
  `attribute` - the BeanMetadataAttribute object to register

#### getMetadataAttribute

    public BeanMetadataAttribute getMetadataAttribute(String name)

Look up the given BeanMetadataAttribute in this accessor's set of attributes.

Parameters:
  `name` - the name of the attribute
Returns:
  the corresponding BeanMetadataAttribute object, or `null` if no such attribute defined

#### setAttribute

    public void setAttribute(String name,
                    Object value)

Description copied from interface: `AttributeAccessor`
Set the attribute defined by `name` to the supplied `value`. If `value` is `null`, the attribute is `removed`.

In general, users should take care to prevent overlaps with other metadata attributes by using fully-qualified names, perhaps using class or package names as prefix.

Specified by:
  `setAttribute` in interface `AttributeAccessor`
Overrides:
  `setAttribute` in class `AttributeAccessorSupport`
Parameters:
  `name` - the unique attribute key
  `value` - the attribute value to be attached

#### getAttribute

    public Object getAttribute(String name)

Description copied from interface: `AttributeAccessor`
Get the value of the attribute identified by `name`. Return `null` if the attribute doesn't exist.

Specified by:
  `getAttribute` in interface `AttributeAccessor`
Overrides:
  `getAttribute` in class `AttributeAccessorSupport`
Parameters:
  `name` - the unique attribute key
Returns:
  the current value of the attribute, if any

#### removeAttribute

    public Object removeAttribute(String name)

Description copied from interface: `AttributeAccessor`
Remove the attribute identified by `name` and return its value. Return `null` if no attribute under `name` is found.

Specified by:
  `removeAttribute` in interface `AttributeAccessor`
Overrides:
  `removeAttribute` in class `AttributeAccessorSupport`
Parameters:
  `name` - the unique attribute key
Returns:
  the last value of the attribute, if any