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:
  • Method Details

    • getParameter

      Parameter getParameter()
      Get the Parameter for this context.

      WARNING

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

      Returns:
      the parameter; never null
      See Also:
    • 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:
    • getDeclaringExecutable

      default 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:
    • getTarget

      Optional<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(Class<? extends 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

      <A extends Annotation> Optional<A> findAnnotation(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:
    • findRepeatableAnnotations

      <A extends Annotation> List<A> findRepeatableAnnotations(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: