Package org.jboss.jandex
Class RecordComponentInfo
- java.lang.Object
-
- org.jboss.jandex.RecordComponentInfo
-
- All Implemented Interfaces:
AnnotationTarget
public final class RecordComponentInfo extends java.lang.Object implements AnnotationTarget
Represents an individual Java record component 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 ClassInfo
clazz
private RecordComponentInternal
internal
-
Constructor Summary
Constructors Constructor Description RecordComponentInfo()
RecordComponentInfo(ClassInfo clazz, byte[] name, Type type)
RecordComponentInfo(ClassInfo clazz, RecordComponentInternal internal)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description MethodInfo
accessor()
Returns the accessor method corresponding to this record component.AnnotationInstance
annotation(DotName name)
Retrieves an annotation instance declared on this field.java.util.List<AnnotationInstance>
annotations()
Returns the list of annotation instances declared on this record component.java.util.List<AnnotationInstance>
annotationsWithRepeatable(DotName name, IndexView index)
Retrieves annotation instances declared on this field, by the name of the annotation.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 RecordComponentInfo
create(ClassInfo clazz, java.lang.String name, Type type)
Constructs a new mock record component infoClassInfo
declaringClass()
Returns the (record) class declaring this record component.boolean
equals(java.lang.Object o)
FieldInfo
field()
Returns the component field corresponding to this record component.boolean
hasAnnotation(DotName name)
Returns whether or not the annotation instance with the given name occurs on this fieldint
hashCode()
AnnotationTarget.Kind
kind()
Returns the kind of object this target represents.java.lang.String
name()
Returns the name of this record component.(package private) RecordComponentInternal
recordComponentInternal()
(package private) void
setAnnotations(java.util.List<AnnotationInstance> annotations)
(package private) void
setClassInfo(ClassInfo clazz)
(package private) void
setRecordComponentInternal(RecordComponentInternal internal)
(package private) void
setType(Type type)
java.lang.String
toString()
Returns a string representation describing this record component.Type
type()
Returns the type of this record component.
-
-
-
Field Detail
-
clazz
private ClassInfo clazz
-
internal
private RecordComponentInternal internal
-
-
Constructor Detail
-
RecordComponentInfo
RecordComponentInfo()
-
RecordComponentInfo
RecordComponentInfo(ClassInfo clazz, RecordComponentInternal internal)
-
-
Method Detail
-
create
public static RecordComponentInfo create(ClassInfo clazz, java.lang.String name, Type type)
Constructs a new mock record component info- Parameters:
clazz
- the (record) class declaring this record componentname
- the name of this record componenttype
- the type of this record component- Returns:
- the new mock record component info
-
declaringClass
public final ClassInfo declaringClass()
Returns the (record) class declaring this record component.- Returns:
- the (record) class declaring this record component
-
field
public final FieldInfo field()
Returns the component field corresponding to this record component.- Returns:
- the component field
-
accessor
public final MethodInfo accessor()
Returns the accessor method corresponding to this record component.- Returns:
- the accessor method
-
name
public final java.lang.String name()
Returns the name of this record component.- Returns:
- the name of this record component
-
type
public Type type()
Returns the type of this record component.- Returns:
- the type of this record component
-
annotations
public java.util.List<AnnotationInstance> annotations()
Returns the list of annotation instances declared on this record component. It may be empty, but never null.- Returns:
- the list of annotations on this record component
-
annotation
public final AnnotationInstance annotation(DotName name)
Retrieves an annotation instance declared on this field. If an annotation by that name is not present, null will be returned.- Parameters:
name
- the name of the annotation to locate on this field- Returns:
- the annotation if found, otherwise, null
-
annotationsWithRepeatable
public final java.util.List<AnnotationInstance> annotationsWithRepeatable(DotName name, IndexView index)
Retrieves annotation instances declared on this field, by the name of the annotation. If the specified annotation is repeatable (JLS 9.6), the result also contains all values from the container annotation instance.- Parameters:
name
- the name of the annotationindex
- the index used to obtain the annotation class- Returns:
- the annotation instances declared on this field, or an empty list if none
- Throws:
java.lang.IllegalArgumentException
- If the index does not contain the annotation definition or if it does not represent an annotation type
-
hasAnnotation
public final boolean hasAnnotation(DotName name)
Returns whether or not the annotation instance with the given name occurs on this field- Parameters:
name
- the name of the annotation to look for- Returns:
- true if the annotation is present, false otherwise
- See Also:
annotations()
,annotation(DotName)
-
toString
public java.lang.String toString()
Returns a string representation describing this record component.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a string representation of this record component
-
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 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
-
setType
void setType(Type type)
-
setAnnotations
void setAnnotations(java.util.List<AnnotationInstance> annotations)
-
recordComponentInternal
RecordComponentInternal recordComponentInternal()
-
setRecordComponentInternal
void setRecordComponentInternal(RecordComponentInternal internal)
-
setClassInfo
void setClassInfo(ClassInfo clazz)
-
-