Interface AttributeAccessor

All Known Subinterfaces:
AnnotatedBeanDefinition, BeanDefinition, TestContext
All Known Implementing Classes:
AbstractBeanDefinition, AnnotatedGenericBeanDefinition, AttributeAccessorSupport, AutowireCandidateQualifier, BeanMetadataAttributeAccessor, ChildBeanDefinition, DefaultTestContext, GenericBeanDefinition, PropertyValue, RootBeanDefinition, ScannedGenericBeanDefinition

public interface AttributeAccessor
Interface defining a generic contract for attaching and accessing metadata to/from arbitrary objects.
Since:
2.0
Author:
Rob Harrop, Sam Brannen
  • Method Details

    • setAttribute

      void setAttribute(String name, @Nullable Object value)
      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.

      Parameters:
      name - the unique attribute key
      value - the attribute value to be attached
    • getAttribute

      @Nullable Object getAttribute(String name)
      Get the value of the attribute identified by name.

      Return null if the attribute doesn't exist.

      Parameters:
      name - the unique attribute key
      Returns:
      the current value of the attribute, if any
    • computeAttribute

      default <T> T computeAttribute(String name, Function<String,T> computeFunction)
      Compute a new value for the attribute identified by name if necessary and set the new value in this AttributeAccessor.

      If a value for the attribute identified by name already exists in this AttributeAccessor, the existing value will be returned without applying the supplied compute function.

      The default implementation of this method is not thread safe but can be overridden by concrete implementations of this interface.

      Type Parameters:
      T - the type of the attribute value
      Parameters:
      name - the unique attribute key
      computeFunction - a function that computes a new value for the attribute name; the function must not return a null value
      Returns:
      the existing value or newly computed value for the named attribute
      Since:
      5.3.3
      See Also:
    • removeAttribute

      @Nullable Object removeAttribute(String name)
      Remove the attribute identified by name and return its value.

      Return null if no attribute under name is found.

      Parameters:
      name - the unique attribute key
      Returns:
      the last value of the attribute, if any
    • hasAttribute

      boolean hasAttribute(String name)
      Return true if the attribute identified by name exists.

      Otherwise return false.

      Parameters:
      name - the unique attribute key
    • attributeNames

      String[] attributeNames()
      Return the names of all attributes.