## 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
`AttributeAccessorSupport()`

Method Summary
`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`