org.springframework.core

## Class AttributeAccessorSupport

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

All Implemented Interfaces:
  Serializable, AttributeAccessor

Direct Known Subclasses:
  BeanMetadataAttributeAccessor, TestContext

    public abstract class AttributeAccessorSupport
    extends Object
    implements AttributeAccessor, Serializable

Support class for `AttributeAccessors`, providing a base implementation of all methods. To be extended by subclasses.

`Serializable` if subclasses and all attribute values are `Serializable`.

Since:
  2.0
Author:
  Rob Harrop, Juergen Hoeller
See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`AttributeAccessorSupport()`

### Method Summary

Methods
`String[]` `attributeNames()` Return the names of all attributes.
`protected void` `copyAttributesFrom(AttributeAccessor source)` Copy the attributes from the supplied AttributeAccessor to this accessor.
`boolean` `equals(Object other)`
`Object` `getAttribute(String name)` Get the value of the attribute identified by `name`.
`boolean` `hasAttribute(String name)` Return `true` if the attribute identified by `name` exists.
`int` `hashCode()`
`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`.

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

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

### Constructor Detail

#### AttributeAccessorSupport

    public AttributeAccessorSupport()

### Method Detail

#### 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`
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`
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`
Parameters:
  `name` - the unique attribute key
Returns:
  the last value of the attribute, if any

#### hasAttribute

    public boolean hasAttribute(String name)

Description copied from interface: `AttributeAccessor`
Return `true` if the attribute identified by `name` exists. Otherwise return `false`.

Specified by:
  `hasAttribute` in interface `AttributeAccessor`
Parameters:
  `name` - the unique attribute key

#### attributeNames

    public String[] attributeNames()

Description copied from interface: `AttributeAccessor`
Return the names of all attributes.

Specified by:
  `attributeNames` in interface `AttributeAccessor`

#### copyAttributesFrom

    protected void copyAttributesFrom(AttributeAccessor source)

Copy the attributes from the supplied AttributeAccessor to this accessor.

Parameters:
  `source` - the AttributeAccessor to copy from

#### equals

    public boolean equals(Object other)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`