Package org.jboss.jandex
Class Type
java.lang.Object
org.jboss.jandex.Type
- Direct Known Subclasses:
ArrayType
,ClassType
,ParameterizedType
,PrimitiveType
,TypeVariable
,UnresolvedTypeVariable
,VoidType
,WildcardType
Represents a Java type declaration usage that is specified on methods, fields, classes,
annotations, or other types. A type can be any class based type (interface, class, annotation),
any primitive, any array, any generic type declaration, or void.
A type usage may have annotations associated with its declaration. A type is equal to another type if, and only if, it represents the same exact definition including the annotations specific to its usage.
To reduce memory overhead, type instances are often shared between their enclosing classes.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AnnotationInstance[]
private static final AnnotationInstance[]
static final Type[]
private final DotName
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) Type
addAnnotation
(AnnotationInstance annotation) final AnnotationInstance
annotation
(DotName name) (package private) AnnotationInstance[]
Returns the list of annotations declared on this type's usage.(package private) void
appendAnnotations
(StringBuilder builder) Casts this type to anArrayType
and returns it if the kind isType.Kind.ARRAY
Throws an exception otherwise.Casts this type to aClassType
and returns it if the kind isType.Kind.CLASS
Throws an exception otherwise.Casts this type to aParameterizedType
and returns it if the kind isType.Kind.PARAMETERIZED_TYPE
Throws an exception otherwise.Casts this type to aPrimitiveType
and returns it if the kind isType.Kind.PRIMITIVE
Throws an exception otherwise.Casts this type to aParameterizedType
and returns it if the kind isType.Kind.TYPE_VARIABLE
Throws an exception otherwise.Casts this type to anUnresolvedTypeVariable
and returns it if the kind isType.Kind.UNRESOLVED_TYPE_VARIABLE
Throws an exception otherwise.Casts this type to aVoidType
and returns it if the kind isType.Kind.VOID
Throws an exception otherwise.Casts this type to aWildcardType
and returns it if the kind isType.Kind.WILDCARD_TYPE
Throws an exception otherwise.(package private) abstract Type
copyType
(AnnotationInstance[] newAnnotations) static Type
Creates a type instance of the specified kind.boolean
Compares this Type with another type, and returns true if they are equivalent.final boolean
hasAnnotation
(DotName name) int
hashCode()
Computes a hash code representing this type.abstract Type.Kind
kind()
Returns the kind of Type this is.name()
Returns the raw name of this type.toString()
Returns a string representation for this type.(package private) String
toString
(boolean simple)
-
Field Details
-
EMPTY_ARRAY
-
EMPTY_ANNOTATIONS
-
name
-
annotations
-
-
Constructor Details
-
Type
Type(DotName name, AnnotationInstance[] annotations)
-
-
Method Details
-
create
Creates a type instance of the specified kind. Types of kindCLASS
, directly use the specified name. Types of kindARRAY
parse the name in the Java reflection format (Java descriptor format changing / to '.', e.g. "[[[[Ljava.lang.String;"). Types of kind PRIMITIVE parsed using the primitive descriptor format (e.g. "I" for int). Types of kind VOID ignore the specified name, and return a void type. All other types will throw an exception.- Parameters:
name
- the name to use or parsekind
- the kind of type to create- Returns:
- the type
- Throws:
IllegalArgumentException
- if the kind is no supported
-
name
Returns the raw name of this type. Primitives and void are returned as the Java reserved word (void, boolean, byte, short, char, int, long, float, double). Arrays are returned using the Java reflection array syntax (e.g. "[[[Ljava.lang.String;") Classes are returned as a normalDotName
.Generic values are returned as the underlying raw value. For example, a wildcard such as
? extends Number
, has a raw type ofNumber
- Returns:
- the name of this type
-
kind
Returns the kind of Type this is.- Returns:
- the kind
-
asClassType
Casts this type to aClassType
and returns it if the kind isType.Kind.CLASS
Throws an exception otherwise.- Returns:
- a
ClassType
- Throws:
IllegalArgumentException
- if not a class- Since:
- 2.0
-
asParameterizedType
Casts this type to aParameterizedType
and returns it if the kind isType.Kind.PARAMETERIZED_TYPE
Throws an exception otherwise.- Returns:
- a
ClassType
- Throws:
IllegalArgumentException
- if not a parameterized type- Since:
- 2.0
-
asTypeVariable
Casts this type to aParameterizedType
and returns it if the kind isType.Kind.TYPE_VARIABLE
Throws an exception otherwise.- Returns:
- a
ClassType
- Throws:
IllegalArgumentException
- if not a type variable- Since:
- 2.0
-
asArrayType
Casts this type to anArrayType
and returns it if the kind isType.Kind.ARRAY
Throws an exception otherwise.- Returns:
- a
ClassType
- Throws:
IllegalArgumentException
- if not an array type- Since:
- 2.0
-
asWildcardType
Casts this type to aWildcardType
and returns it if the kind isType.Kind.WILDCARD_TYPE
Throws an exception otherwise.- Returns:
- a
ClassType
- Throws:
IllegalArgumentException
- if not a wildcard type- Since:
- 2.0
-
asUnresolvedTypeVariable
Casts this type to anUnresolvedTypeVariable
and returns it if the kind isType.Kind.UNRESOLVED_TYPE_VARIABLE
Throws an exception otherwise.- Returns:
- a
ClassType
- Throws:
IllegalArgumentException
- if not an unresolved type- Since:
- 2.0
-
asPrimitiveType
Casts this type to aPrimitiveType
and returns it if the kind isType.Kind.PRIMITIVE
Throws an exception otherwise.- Returns:
- a
ClassType
- Throws:
IllegalArgumentException
- if not a primitive type- Since:
- 2.0
-
asVoidType
Casts this type to aVoidType
and returns it if the kind isType.Kind.VOID
Throws an exception otherwise.- Returns:
- a
ClassType
- Throws:
IllegalArgumentException
- if not a void type- Since:
- 2.0
-
toString
Returns a string representation for this type. It is similar, yet not equivalent to a Java source code representation. -
toString
-
appendAnnotations
-
equals
Compares this Type with another type, and returns true if they are equivalent. A type is equivalent to another type if it is the same kind, and all of its fields are equal. This includes annotations, which must be equal as well. -
annotations
Returns the list of annotations declared on this type's usage. In order to allow for type reuse, the annotation instances returned by this method will have a null annotation target value. However, this information is not useful, because if it is accessed from this method, the target is this type.- Returns:
- a list of annotation instances declared on the usage this type represents
- Since:
- 2.0
-
annotationArray
AnnotationInstance[] annotationArray() -
annotation
-
hasAnnotation
-
addAnnotation
-
copyType
-
hashCode
public int hashCode()Computes a hash code representing this type.
-