org.springframework.core.type

## Interface AnnotatedTypeMetadata

- All Known Subinterfaces:
    AnnotationMetadata, MethodMetadata
  All Known Implementing Classes:
    AnnotationMetadataReadingVisitor, MethodMetadataReadingVisitor, StandardAnnotationMetadata, StandardMethodMetadata

      public interface AnnotatedTypeMetadata

  Defines access to the annotations of a specific type (`class` or `method`), in a form that does not necessarily require the class-loading.
  Since:
    4.0
  Author:
    Juergen Hoeller, Mark Fisher, Mark Pollack, Chris Beams, Phillip Webb, Sam Brannen
  See Also:
    `AnnotationMetadata`, `MethodMetadata`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default MultiValueMap<String,Object>` | `getAllAnnotationAttributes(String annotationName)` Retrieve all attributes of all annotations of the given type, if any (i.e.
    `default MultiValueMap<String,Object>` | `getAllAnnotationAttributes(String annotationName, boolean classValuesAsString)` Retrieve all attributes of all annotations of the given type, if any (i.e.
    `default Map<String,Object>` | `getAnnotationAttributes(String annotationName)` Retrieve the attributes of the annotation of the given type, if any (i.e.
    `default Map<String,Object>` | `getAnnotationAttributes(String annotationName, boolean classValuesAsString)` Retrieve the attributes of the annotation of the given type, if any (i.e.
    `MergedAnnotations` | `getAnnotations()` Return annotation details based on the direct annotations of the underlying element.
    `default boolean` | `isAnnotated(String annotationName)` Determine whether the underlying element has an annotation or meta-annotation of the given type defined.

- - ### Method Detail

    - #### getAnnotations

          MergedAnnotations getAnnotations()

      Return annotation details based on the direct annotations of the underlying element.
      Returns:
        merged annotations based on the direct annotations
      Since:
        5.2

    - #### isAnnotated

          default boolean isAnnotated(String annotationName)

      Determine whether the underlying element has an annotation or meta-annotation of the given type defined.

      If this method returns `true`, then `getAnnotationAttributes(java.lang.String)` will return a non-null Map.

      Parameters:
        `annotationName` - the fully qualified class name of the annotation type to look for
      Returns:
        whether a matching annotation is defined

    - #### getAnnotationAttributes

          @Nullable
          default Map<String,Object> getAnnotationAttributes(String annotationName)

      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.
      Parameters:
        `annotationName` - the fully qualified class name of the annotation type to look for
      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.

    - #### getAnnotationAttributes

          @Nullable
          default Map<String,Object> getAnnotationAttributes(String annotationName,
                                                                       boolean classValuesAsString)

      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.
      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
          default MultiValueMap<String,Object> getAllAnnotationAttributes(String annotationName)

      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.
      Parameters:
        `annotationName` - the fully qualified class name of the annotation type to look for
      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:
        `getAllAnnotationAttributes(String, boolean)`

    - #### getAllAnnotationAttributes

          @Nullable
          default MultiValueMap<String,Object> getAllAnnotationAttributes(String annotationName,
                                                                                    boolean classValuesAsString)

      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.
      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:
        `getAllAnnotationAttributes(String)`