Interface AnnotatedElementContext

  • All Known Subinterfaces:
    ParameterContext

    @API(status=EXPERIMENTAL,
         since="5.10")
    public interface AnnotatedElementContext
    AnnotatedElementContext encapsulates the context in which an AnnotatedElement is declared.

    For example, an AnnotatedElementContext is used in TempDirFactory to allow inspecting the field or parameter the TempDir annotation is declared on.

    This interface is not intended to be implemented by clients.

    Since:
    5.10
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default <A extends java.lang.annotation.Annotation>
      java.util.Optional<A>
      findAnnotation​(java.lang.Class<A> annotationType)
      Find the first annotation of annotationType that is either present or meta-present on the AnnotatedElement for this context.
      default <A extends java.lang.annotation.Annotation>
      java.util.List<A>
      findRepeatableAnnotations​(java.lang.Class<A> annotationType)
      Find all repeatable annotations of annotationType that are either present or meta-present on the AnnotatedElement for this context.
      java.lang.reflect.AnnotatedElement getAnnotatedElement()
      Get the AnnotatedElement for this context.
      default boolean isAnnotated​(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
      Determine if an annotation of annotationType is either present or meta-present on the AnnotatedElement for this context.
    • Method Detail

      • getAnnotatedElement

        java.lang.reflect.AnnotatedElement getAnnotatedElement()
        Get the AnnotatedElement for this context.

        WARNING

        When searching for annotations on the annotated element in this context, favor isAnnotated(Class), findAnnotation(Class), and findRepeatableAnnotations(Class) over methods in the AnnotatedElement API due to a bug in javac on JDK versions prior to JDK 9.

        Returns:
        the annotated element; never null
      • isAnnotated

        default boolean isAnnotated​(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
        Determine if an annotation of annotationType is either present or meta-present on the AnnotatedElement for this context.

        WARNING

        Favor the use of this method over directly invoking AnnotatedElement.isAnnotationPresent(Class) due to a bug in javac on JDK versions prior to JDK 9.

        Parameters:
        annotationType - the annotation type to search for; never null
        Returns:
        true if the annotation is present or meta-present
        See Also:
        findAnnotation(Class), findRepeatableAnnotations(Class)
      • findAnnotation

        default <A extends java.lang.annotation.Annotation> java.util.Optional<A> findAnnotation​(java.lang.Class<A> annotationType)
        Find the first annotation of annotationType that is either present or meta-present on the AnnotatedElement for this context.

        WARNING

        Favor the use of this method over directly invoking annotation lookup methods in the AnnotatedElement API due to a bug in javac on JDK versions prior to JDK 9.

        Type Parameters:
        A - the annotation type
        Parameters:
        annotationType - the annotation type to search for; never null
        Returns:
        an Optional containing the annotation; never null but potentially empty
        See Also:
        isAnnotated(Class), findRepeatableAnnotations(Class)
      • findRepeatableAnnotations

        default <A extends java.lang.annotation.Annotation> java.util.List<A> findRepeatableAnnotations​(java.lang.Class<A> annotationType)
        Find all repeatable annotations of annotationType that are either present or meta-present on the AnnotatedElement for this context.

        WARNING

        Favor the use of this method over directly invoking annotation lookup methods in the AnnotatedElement API due to a bug in javac on JDK versions prior to JDK 9.

        Type Parameters:
        A - the annotation type
        Parameters:
        annotationType - the repeatable annotation type to search for; never null
        Returns:
        the list of all such annotations found; neither null nor mutable, but potentially empty
        See Also:
        isAnnotated(Class), findAnnotation(Class), Repeatable