Package org.springframework.core
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 Summary
Modifier and TypeMethodDescriptionString[]Return the names of all attributes.default <T> TcomputeAttribute(String name, Function<String, T> computeFunction) Compute a new value for the attribute identified bynameif necessary and set the new value in thisAttributeAccessor.getAttribute(String name) Get the value of the attribute identified byname.booleanhasAttribute(String name) Returntrueif the attribute identified bynameexists.removeAttribute(String name) Remove the attribute identified bynameand return its value.voidsetAttribute(String name, Object value) Set the attribute defined bynameto the suppliedvalue.
-
Method Details
-
setAttribute
Set the attribute defined bynameto the suppliedvalue.If
valueisnull, the attribute isremoved.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 keyvalue- the attribute value to be attached
-
getAttribute
Get the value of the attribute identified byname.Return
nullif the attribute doesn't exist.- Parameters:
name- the unique attribute key- Returns:
- the current value of the attribute, if any
-
computeAttribute
Compute a new value for the attribute identified bynameif necessary and set the new value in thisAttributeAccessor.If a value for the attribute identified by
namealready exists in thisAttributeAccessor, 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 keycomputeFunction- a function that computes a new value for the attribute name; the function must not return anullvalue- Returns:
- the existing value or newly computed value for the named attribute
- Since:
- 5.3.3
- See Also:
-
removeAttribute
Remove the attribute identified bynameand return its value.Return
nullif no attribute undernameis found.- Parameters:
name- the unique attribute key- Returns:
- the last value of the attribute, if any
-
hasAttribute
Returntrueif the attribute identified bynameexists.Otherwise return
false.- Parameters:
name- the unique attribute key
-
attributeNames
String[] attributeNames()Return the names of all attributes.
-