@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
.
ParameterResolver
,
Parameter
,
Executable
,
Method
,
Constructor
Modifier and Type | Method and Description |
---|---|
<A extends java.lang.annotation.Annotation> |
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> |
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. |
java.lang.reflect.Parameter getParameter()
Parameter
for this context.
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.
null
getIndex()
int getIndex()
Parameter
for this context within the
parameter list of the Executable
that
declares the parameter.getParameter()
,
Executable.getParameters()
default java.lang.reflect.Executable getDeclaringExecutable()
Executable
(i.e., the Method
or
Constructor
) that declares the Parameter
for this context.Executable
; never null
Parameter.getDeclaringExecutable()
java.util.Optional<java.lang.Object> getTarget()
Executable
that declares the Parameter
for this context will
be invoked, if available.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.boolean isAnnotated(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
annotationType
is either
present or meta-present on the Parameter
for
this context.
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.
annotationType
- the annotation type to search for; never null
true
if the annotation is present or meta-presentfindAnnotation(Class)
,
findRepeatableAnnotations(Class)
<A extends java.lang.annotation.Annotation> java.util.Optional<A> findAnnotation(java.lang.Class<A> annotationType)
annotationType
that is either
present or meta-present on the Parameter
for
this context.
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.
A
- the annotation typeannotationType
- the annotation type to search for; never null
Optional
containing the annotation; never null
but
potentially emptyisAnnotated(Class)
,
findRepeatableAnnotations(Class)
<A extends java.lang.annotation.Annotation> java.util.List<A> findRepeatableAnnotations(java.lang.Class<A> annotationType)
annotationType
that are either present or
meta-present on the Parameter
for this context.
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.
A
- the annotation typeannotationType
- the repeatable annotation type to search for; never
null
null
nor
mutable, but potentially emptyisAnnotated(Class)
,
findAnnotation(Class)
,
Repeatable