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
    Modifier and Type | Method and Description
    --- | ---
    `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`