Interface ParameterContext


  • @API(status=STABLE,
         since="5.0")
    public interface ParameterContext
    ParameterContext encapsulates the context in which an Executable will be invoked for a given Parameter.

    A ParameterContext is used to support parameter resolution via a ParameterResolver.

    Since:
    5.0
    See Also:
    ParameterResolver, Parameter, Executable, Method, Constructor
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      <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 Parameter for this context.
      <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 Parameter for this context.
      default java.lang.reflect.Executable getDeclaringExecutable()
      Get the Executable (i.e., the Method or Constructor) that declares the Parameter for this context.
      int getIndex()
      Get the index of the Parameter for this context within the parameter list of the Executable that declares the parameter.
      java.lang.reflect.Parameter getParameter()
      Get the Parameter for this context.
      java.util.Optional<java.lang.Object> getTarget()
      Get the target on which the Executable that declares the Parameter for this context will be invoked, if available.
      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 Parameter for this context.
    • Method Detail

      • getIndex

        int getIndex()
        Get the index of the Parameter for this context within the parameter list of the Executable that declares the parameter.
        Returns:
        the index of the parameter
        See Also:
        getParameter(), Executable.getParameters()
      • getDeclaringExecutable

        default java.lang.reflect.Executable getDeclaringExecutable()
        Get the Executable (i.e., the Method or Constructor) that declares the Parameter for this context.
        Returns:
        the declaring Executable; never null
        See Also:
        Parameter.getDeclaringExecutable()
      • getTarget

        java.util.Optional<java.lang.Object> getTarget()
        Get the target on which the Executable that declares the Parameter for this context will be invoked, if available.
        Returns:
        an Optional containing the target on which the Executable will be invoked; never null but will be empty if the Executable is a constructor or a static method.
      • isAnnotated

        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 Parameter 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
        Since:
        5.1.1
        See Also:
        findAnnotation(Class), findRepeatableAnnotations(Class)
      • findAnnotation

        <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 Parameter for this context.

        WARNING

        Favor the use of this method over directly invoking annotation lookup methods in the Parameter 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
        Since:
        5.1.1
        See Also:
        isAnnotated(Class), findRepeatableAnnotations(Class)
      • findRepeatableAnnotations

        <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 Parameter for this context.

        WARNING

        Favor the use of this method over directly invoking annotation lookup methods in the Parameter 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
        Since:
        5.1.1
        See Also:
        isAnnotated(Class), findAnnotation(Class), Repeatable