Class MethodParameterInfo
- java.lang.Object
-
- org.jboss.jandex.MethodParameterInfo
-
- All Implemented Interfaces:
AnnotationTarget
,Declaration
public final class MethodParameterInfo extends java.lang.Object implements Declaration
Represents an individual Java method parameter that was annotated.Thread-Safety
This class is immutable and can be shared between threads without safe publication.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.jboss.jandex.AnnotationTarget
AnnotationTarget.Kind
-
-
Field Summary
Fields Modifier and Type Field Description private MethodInfo
method
private short
position
-
Constructor Summary
Constructors Constructor Description MethodParameterInfo(MethodInfo method, short position)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AnnotationInstance
annotation(DotName name)
Returns the annotation instance with given name declared on this method parameter or any type within its signature.java.util.List<AnnotationInstance>
annotations()
Returns the annotation instances declared on this method parameter or any type within its signature.java.util.List<AnnotationInstance>
annotations(DotName name)
Returns the annotation instances with given name declared on this method parameter or any type within its signature.java.util.List<AnnotationInstance>
annotationsWithRepeatable(DotName name, IndexView index)
Returns the annotation instances with given name declared on this method parameter or any type within its signature.ClassInfo
asClass()
Casts and returns this target as aClassInfo
if it is of kindCLASS
FieldInfo
asField()
Casts and returns this target as aFieldInfo
if it is of kindFIELD
MethodInfo
asMethod()
Casts and returns this target as aMethodInfo
if it is of kindMETHOD
MethodParameterInfo
asMethodParameter()
Casts and returns this target as aMethodParameterInfo
if it is of kindMETHOD_PARAMETER
RecordComponentInfo
asRecordComponent()
Casts and returns this target as aRecordComponentInfo
if it is of kindRECORD_COMPONENT
TypeTarget
asType()
Casts and returns this target as aTypeTarget
if it is of kindTYPE
static MethodParameterInfo
create(MethodInfo method, short parameter)
Constructs a new mock method parameter infoAnnotationInstance
declaredAnnotation(DotName name)
Returns the annotation instance with given name declared on this method parameter.java.util.List<AnnotationInstance>
declaredAnnotations()
Returns the annotation instances declared on this method parameter.java.util.List<AnnotationInstance>
declaredAnnotationsWithRepeatable(DotName name, IndexView index)
Returns the annotation instances with given name declared on this method parameter.boolean
equals(java.lang.Object o)
boolean
hasAnnotation(DotName name)
Returns whether an annotation instance with given name is declared on this method parameter or any type within its signature.boolean
hasDeclaredAnnotation(DotName name)
Returns whether an annotation instance with given name is declared on this method parameter.int
hashCode()
AnnotationTarget.Kind
kind()
Returns the kind of object this target represents.MethodInfo
method()
Returns the method this parameter belongs to.java.lang.String
name()
Returns the name of this parameter, ornull
if not known.short
position()
Returns the 0 based position of this parameter.private boolean
targetsThis(AnnotationInstance annotation)
private boolean
targetsThisOrNested(AnnotationInstance annotation)
java.lang.String
toString()
Returns a string representation describing this method parameter.Type
type()
Returns the type of this parameter.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.jboss.jandex.AnnotationTarget
annotation, annotation, annotations, annotations, annotationsWithRepeatable, annotationsWithRepeatable, declaredAnnotation, declaredAnnotation, declaredAnnotationsWithRepeatable, declaredAnnotationsWithRepeatable, hasAnnotation, hasAnnotation, hasDeclaredAnnotation, hasDeclaredAnnotation
-
Methods inherited from interface org.jboss.jandex.Declaration
asDeclaration, isDeclaration
-
-
-
-
Field Detail
-
method
private final MethodInfo method
-
position
private final short position
-
-
Constructor Detail
-
MethodParameterInfo
MethodParameterInfo(MethodInfo method, short position)
-
-
Method Detail
-
create
public static MethodParameterInfo create(MethodInfo method, short parameter)
Constructs a new mock method parameter info- Parameters:
method
- the method containing this parameter.parameter
- the zero based index of this parameter- Returns:
- the new mock parameter info
-
method
public final MethodInfo method()
Returns the method this parameter belongs to.- Returns:
- the declaring Java method
-
position
public final short position()
Returns the 0 based position of this parameter.- Returns:
- the position of this parameter
-
name
public final java.lang.String name()
Returns the name of this parameter, ornull
if not known.- Returns:
- the name of this parameter, or
null
if not known
-
type
public final Type type()
Returns the type of this parameter.- Returns:
- the type of this parameter
- Since:
- 3.0
-
targetsThis
private boolean targetsThis(AnnotationInstance annotation)
-
targetsThisOrNested
private boolean targetsThisOrNested(AnnotationInstance annotation)
-
hasAnnotation
public boolean hasAnnotation(DotName name)
Returns whether an annotation instance with given name is declared on this method parameter or any type within its signature.- Specified by:
hasAnnotation
in interfaceAnnotationTarget
- Parameters:
name
- name of the annotation type to look for, must not benull
- Returns:
true
if the annotation is present,false
otherwise- Since:
- 3.0
- See Also:
annotation(DotName)
-
annotation
public AnnotationInstance annotation(DotName name)
Returns the annotation instance with given name declared on this method parameter or any type within its signature. Thetarget()
method of the returned annotation instance may be used to determine the exact location of the annotation instance.In case an annotation with given name occurs more than once, the result of this method is not deterministic. For such situations,
annotations(DotName)
is preferable.- Specified by:
annotation
in interfaceAnnotationTarget
- Parameters:
name
- name of the annotation type to look for, must not benull
- Returns:
- the annotation instance, or
null
if not found - Since:
- 3.0
- See Also:
annotations(DotName)
-
annotations
public java.util.List<AnnotationInstance> annotations(DotName name)
Returns the annotation instances with given name declared on this method parameter or any type within its signature. Thetarget()
method of the returned annotation instances may be used to determine the exact location of the respective annotation instance.- Specified by:
annotations
in interfaceAnnotationTarget
- Parameters:
name
- name of the annotation type, must not benull
- Returns:
- immutable list of annotation instances, never
null
- Since:
- 3.0
- See Also:
annotationsWithRepeatable(DotName, IndexView)
,annotations()
-
annotationsWithRepeatable
public java.util.List<AnnotationInstance> annotationsWithRepeatable(DotName name, IndexView index)
Returns the annotation instances with given name declared on this method parameter or any type within its signature. Thetarget()
method of the returned annotation instances may be used to determine the exact location of the respective annotation instance.If the specified annotation is repeatable, the result also contains all values from the container annotation instance. In this case, the
AnnotationInstance.target()
returns the target of the container annotation instance.- Specified by:
annotationsWithRepeatable
in interfaceAnnotationTarget
- Parameters:
name
- name of the annotation type, must not benull
index
- index used to obtain the annotation type, must not benull
- Returns:
- immutable list of annotation instances, never
null
- Throws:
java.lang.IllegalArgumentException
- if the index isnull
, if the index does not contain the annotation type or ifname
does not identify an annotation type- Since:
- 3.0
- See Also:
annotations(DotName)
,annotations()
-
annotations
public java.util.List<AnnotationInstance> annotations()
Returns the annotation instances declared on this method parameter or any type within its signature. Thetarget()
method of the returned annotation instances may be used to determine the exact location of the respective annotation instance.- Specified by:
annotations
in interfaceAnnotationTarget
- Returns:
- immutable list of annotation instances, never
null
- Since:
- 3.0
-
hasDeclaredAnnotation
public boolean hasDeclaredAnnotation(DotName name)
Returns whether an annotation instance with given name is declared on this method parameter.Unlike
hasAnnotation(DotName)
, this method ignores annotations declared on types within the methor parameter signature.- Specified by:
hasDeclaredAnnotation
in interfaceAnnotationTarget
- Parameters:
name
- name of the annotation type to look for, must not benull
- Returns:
true
if the annotation is present,false
otherwise- Since:
- 3.0
- See Also:
hasAnnotation(DotName)
-
declaredAnnotation
public AnnotationInstance declaredAnnotation(DotName name)
Returns the annotation instance with given name declared on this method parameter.Unlike
annotation(DotName)
, this method doesn't return annotations declared on types within the methor parameter signature.- Specified by:
declaredAnnotation
in interfaceAnnotationTarget
- Parameters:
name
- name of the annotation type to look for, must not benull
- Returns:
- the annotation instance, or
null
if not found - Since:
- 3.0
- See Also:
annotation(DotName)
-
declaredAnnotationsWithRepeatable
public java.util.List<AnnotationInstance> declaredAnnotationsWithRepeatable(DotName name, IndexView index)
Returns the annotation instances with given name declared on this method parameter.If the specified annotation is repeatable, the result also contains all values from the container annotation instance. In this case, the
AnnotationInstance.target()
returns the target of the container annotation instance.Unlike
annotationsWithRepeatable(DotName, IndexView)
, this method doesn't return annotations declared on types within the methor parameter signature.- Specified by:
declaredAnnotationsWithRepeatable
in interfaceAnnotationTarget
- Parameters:
name
- name of the annotation type, must not benull
index
- index used to obtain the annotation type, must not benull
- Returns:
- immutable list of annotation instances, never
null
- Throws:
java.lang.IllegalArgumentException
- if the index isnull
, if the index does not contain the annotation type or ifname
does not identify an annotation type- Since:
- 3.0
- See Also:
annotationsWithRepeatable(DotName, IndexView)
-
declaredAnnotations
public java.util.List<AnnotationInstance> declaredAnnotations()
Returns the annotation instances declared on this method parameter.Unlike
annotations()
, this method doesn't return annotations declared on types within the methor parameter signature.- Specified by:
declaredAnnotations
in interfaceAnnotationTarget
- Returns:
- immutable list of annotation instances, never
null
- Since:
- 3.0
- See Also:
annotations()
-
toString
public java.lang.String toString()
Returns a string representation describing this method parameter. It is similar although not necessarily identical to a Java source code declaration of this method parameter.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a string representation of this method parameter
-
asClass
public final ClassInfo asClass()
Description copied from interface:AnnotationTarget
Casts and returns this target as aClassInfo
if it is of kindCLASS
- Specified by:
asClass
in interfaceAnnotationTarget
- Returns:
- this instance cast to a class
-
asField
public final FieldInfo asField()
Description copied from interface:AnnotationTarget
Casts and returns this target as aFieldInfo
if it is of kindFIELD
- Specified by:
asField
in interfaceAnnotationTarget
- Returns:
- this instance cast to a field
-
asMethod
public final MethodInfo asMethod()
Description copied from interface:AnnotationTarget
Casts and returns this target as aMethodInfo
if it is of kindMETHOD
- Specified by:
asMethod
in interfaceAnnotationTarget
- Returns:
- this instance cast to a method
-
asMethodParameter
public final MethodParameterInfo asMethodParameter()
Description copied from interface:AnnotationTarget
Casts and returns this target as aMethodParameterInfo
if it is of kindMETHOD_PARAMETER
- Specified by:
asMethodParameter
in interfaceAnnotationTarget
- Returns:
- this instance cast to a method parameter
-
asType
public final TypeTarget asType()
Description copied from interface:AnnotationTarget
Casts and returns this target as aTypeTarget
if it is of kindTYPE
- Specified by:
asType
in interfaceAnnotationTarget
- Returns:
- this instance cast to a type target
-
asRecordComponent
public final RecordComponentInfo asRecordComponent()
Description copied from interface:AnnotationTarget
Casts and returns this target as aRecordComponentInfo
if it is of kindRECORD_COMPONENT
- Specified by:
asRecordComponent
in interfaceAnnotationTarget
- Returns:
- this instance cast to a record component
-
kind
public AnnotationTarget.Kind kind()
Description copied from interface:AnnotationTarget
Returns the kind of object this target represents.- Specified by:
kind
in interfaceAnnotationTarget
- Returns:
- the target kind.
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
-