Class StandardAnnotationMetadata

java.lang.Object
org.springframework.core.type.StandardClassMetadata
org.springframework.core.type.StandardAnnotationMetadata
All Implemented Interfaces:
AnnotatedTypeMetadata, AnnotationMetadata, ClassMetadata

public class StandardAnnotationMetadata extends StandardClassMetadata implements AnnotationMetadata
AnnotationMetadata implementation that uses standard reflection to introspect a given Class.
Since:
2.5
Author:
Juergen Hoeller, Mark Fisher, Chris Beams, Phillip Webb, Sam Brannen
  • Constructor Details

  • Method Details

    • getAnnotations

      public MergedAnnotations getAnnotations()
      Description copied from interface: AnnotatedTypeMetadata
      Return annotation details based on the direct annotations of the underlying element.
      Specified by:
      getAnnotations in interface AnnotatedTypeMetadata
      Returns:
      merged annotations based on the direct annotations
    • getAnnotationTypes

      public Set<String> getAnnotationTypes()
      Description copied from interface: AnnotationMetadata
      Get the fully qualified class names of all annotation types that are present on the underlying class.
      Specified by:
      getAnnotationTypes in interface AnnotationMetadata
      Returns:
      the annotation type names
    • getAnnotationAttributes

      @Nullable public Map<String,Object> getAnnotationAttributes(String annotationName, boolean classValuesAsString)
      Description copied from interface: AnnotatedTypeMetadata
      Retrieve the attributes of the annotation of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation), also taking attribute overrides on composed annotations into account.
      Specified by:
      getAnnotationAttributes in interface AnnotatedTypeMetadata
      Parameters:
      annotationName - the fully qualified class name of the annotation type to look for
      classValuesAsString - whether to convert class references to String class names for exposure as values in the returned Map, instead of Class references which might potentially have to be loaded first
      Returns:
      a Map of attributes, with the attribute name as key (e.g. "value") and the defined attribute value as Map value. This return value will be null if no matching annotation is defined.
    • getAllAnnotationAttributes

      @Nullable public MultiValueMap<String,Object> getAllAnnotationAttributes(String annotationName, boolean classValuesAsString)
      Description copied from interface: AnnotatedTypeMetadata
      Retrieve all attributes of all annotations of the given type, if any (i.e. if defined on the underlying element, as direct annotation or meta-annotation). Note that this variant does not take attribute overrides into account.
      Specified by:
      getAllAnnotationAttributes in interface AnnotatedTypeMetadata
      Parameters:
      annotationName - the fully qualified class name of the annotation type to look for
      classValuesAsString - whether to convert class references to String
      Returns:
      a MultiMap of attributes, with the attribute name as key (e.g. "value") and a list of the defined attribute values as Map value. This return value will be null if no matching annotation is defined.
      See Also:
    • hasAnnotatedMethods

      public boolean hasAnnotatedMethods(String annotationName)
      Description copied from interface: AnnotationMetadata
      Determine whether the underlying class has any methods that are annotated (or meta-annotated) with the given annotation type.
      Specified by:
      hasAnnotatedMethods in interface AnnotationMetadata
      Parameters:
      annotationName - the fully qualified class name of the annotation type to look for
    • getAnnotatedMethods

      public Set<MethodMetadata> getAnnotatedMethods(String annotationName)
      Description copied from interface: AnnotationMetadata
      Retrieve the method metadata for all methods that are annotated (or meta-annotated) with the given annotation type.

      For any returned method, AnnotatedTypeMetadata.isAnnotated(java.lang.String) will return true for the given annotation type.

      Specified by:
      getAnnotatedMethods in interface AnnotationMetadata
      Parameters:
      annotationName - the fully qualified class name of the annotation type to look for
      Returns:
      a set of MethodMetadata for methods that have a matching annotation. The return value will be an empty set if no methods match the annotation type.
    • getDeclaredMethods

      public Set<MethodMetadata> getDeclaredMethods()
      Description copied from interface: AnnotationMetadata
      Retrieve the method metadata for all user-declared methods on the underlying class, preserving declaration order as far as possible.
      Specified by:
      getDeclaredMethods in interface AnnotationMetadata
      Returns:
      a set of MethodMetadata