org.springframework.core.type

Interface AnnotationMetadata

    • Method Detail

      • getAnnotationTypes

        Set<String> getAnnotationTypes()
        Return the names of all annotation types defined on the underlying class.
        Returns:
        the annotation type names
      • getMetaAnnotationTypes

        Set<String> getMetaAnnotationTypes(String annotationType)
        Return the names of all meta-annotation types defined on the given annotation type of the underlying class.
        Parameters:
        annotationType - the meta-annotation type to look for
        Returns:
        the meta-annotation type names
      • hasAnnotation

        boolean hasAnnotation(String annotationType)
        Determine whether the underlying class has an annotation of the given type defined.
        Parameters:
        annotationType - the annotation type to look for
        Returns:
        whether a matching annotation is defined
      • hasMetaAnnotation

        boolean hasMetaAnnotation(String metaAnnotationType)
        Determine whether the underlying class has an annotation that is itself annotated with the meta-annotation of the given type.
        Parameters:
        metaAnnotationType - the meta-annotation type to look for
        Returns:
        whether a matching meta-annotation is defined
      • isAnnotated

        boolean isAnnotated(String annotationType)
        Determine whether the underlying class has an annotation or meta-annotation of the given type defined.

        This is equivalent to a "hasAnnotation || hasMetaAnnotation" check. If this method returns true, then getAnnotationAttributes(java.lang.String) will return a non-null Map.

        Parameters:
        annotationType - the annotation type to look for
        Returns:
        whether a matching annotation is defined
      • getAnnotationAttributes

        Map<String,Object> getAnnotationAttributes(String annotationType)
        Retrieve the attributes of the annotation of the given type, if any (i.e. if defined on the underlying class, as direct annotation or as meta-annotation).
        Parameters:
        annotationType - 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

        Map<String,Object> getAnnotationAttributes(String annotationType,
                                                 boolean classValuesAsString)
        Retrieve the attributes of the annotation of the given type, if any (i.e. if defined on the underlying class, as direct annotation or as meta-annotation).
        Parameters:
        annotationType - 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.
      • hasAnnotatedMethods

        boolean hasAnnotatedMethods(String annotationType)
        Determine whether the underlying class has any methods that are annotated (or meta-annotated) with the given annotation type.
      • getAnnotatedMethods

        Set<MethodMetadata> getAnnotatedMethods(String annotationType)
        Retrieve the method metadata for all methods that are annotated (or meta-annotated) with the given annotation type.

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

        Parameters:
        annotationType - 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.