org.aspectj.org.eclipse.jdt.core.dom
Class Type

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.core.dom.ASTNode
      extended by org.aspectj.org.eclipse.jdt.core.dom.Type
Direct Known Subclasses:
AnnotatableType, ArrayType, FormalBinding, IntersectionType, ParameterizedType, UnionType

public abstract class Type
extends ASTNode

Abstract base class of all type reference AST node types. A type node represents a reference to a primitive type (including void), to an array type, or to a simple named type (or type variable), to a qualified type, to a parameterized type, to a union type, to an intersection type, or to a wildcard type. Note that not all of these are meaningful in all contexts; for example, a wildcard type is only meaningful in the type argument position of a parameterized type. UnionType got introduced in JLS4 to support common catch blocks for disjunctive types. For JLS8, optional annotations indicated by {Annotation} got added.

 Type:
    AnnotatableType:
       PrimitiveType
       SimpleType
       QualifiedType
       NameQualifiedType
       WildcardType
    ArrayType
    ParameterizedType
    UnionType
    IntersectionType
    
 PrimitiveType:
    { Annotation } byte
    { Annotation } short
    { Annotation } char
    { Annotation } int
    { Annotation } long
    { Annotation } float
    { Annotation } double
    { Annotation } boolean
    { Annotation } void
 ArrayType:
    Type Dimension { Dimension }
 SimpleType:
    { Annotation } TypeName
 QualifiedType:
    Type . {Annotation} SimpleName
 NameQualifiedType:
    Name . { Annotation } SimpleName
 WildcardType:
    { Annotation } ? [ ( extends | super) Type ]
 ParameterizedType:
    Type < Type { , Type } >
 UnionType:
    Type | Type { | Type }
 IntersectionType:
    Type & Type { & Type }
 

Since:
2.0

Field Summary
 
Fields inherited from class org.aspectj.org.eclipse.jdt.core.dom.ASTNode
ANNOTATION_TYPE_DECLARATION, ANNOTATION_TYPE_MEMBER_DECLARATION, ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, LABELED_STATEMENT, LAMBDA_EXPRESSION, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE
 
Method Summary
 boolean isAnnotatable()
          Returns whether this type can be annotated.
 boolean isArrayType()
          Returns whether this type is an array type (ArrayType).
 boolean isIntersectionType()
          Returns whether this type is an intersection type (IntersectionType).
 boolean isNameQualifiedType()
          Returns whether this type is a name qualified type (NameQualifiedType).
 boolean isParameterizedType()
          Returns whether this type is a parameterized type (ParameterizedType).
 boolean isPrimitiveType()
          Returns whether this type is a primitive type (PrimitiveType).
 boolean isQualifiedType()
          Returns whether this type is a qualified type (QualifiedType).
 boolean isSimpleType()
          Returns whether this type is a simple type (SimpleType).
 boolean isUnionType()
          Returns whether this type is a union type (UnionType).
 boolean isWildcardType()
          Returns whether this type is a wildcard type (WildcardType).
 ITypeBinding resolveBinding()
          Resolves and returns the binding for this type.
 
Methods inherited from class org.aspectj.org.eclipse.jdt.core.dom.ASTNode
accept, copySubtree, copySubtrees, delete, equals, getAST, getFlags, getLength, getLocationInParent, getNodeType, getParent, getProperty, getRoot, getStartPosition, getStructuralProperty, hashCode, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

isPrimitiveType

public final boolean isPrimitiveType()
Returns whether this type is a primitive type (PrimitiveType).

Returns:
true if this is a primitive type, and false otherwise

isSimpleType

public final boolean isSimpleType()
Returns whether this type is a simple type (SimpleType).

Returns:
true if this is a simple type, and false otherwise

isArrayType

public final boolean isArrayType()
Returns whether this type is an array type (ArrayType).

Returns:
true if this is an array type, and false otherwise

isNameQualifiedType

public final boolean isNameQualifiedType()
Returns whether this type is a name qualified type (NameQualifiedType).

Returns:
true if this is a name qualified type, and false otherwise
Since:
3.10

isParameterizedType

public final boolean isParameterizedType()
Returns whether this type is a parameterized type (ParameterizedType).

Returns:
true if this is a parameterized type, and false otherwise
Since:
3.1

isQualifiedType

public final boolean isQualifiedType()
Returns whether this type is a qualified type (QualifiedType).

Note that a type like "A.B" can be represented either of two ways:

  1. QualifiedType(SimpleType(SimpleName("A")),SimpleName("B"))
  2. SimpleType(QualifiedName(SimpleName("A"),SimpleName("B")))
The first form is preferred when "A" is known to be a type. However, a parser cannot always determine this. Clients should be prepared to handle either rather than make assumptions. (Note also that the first form became possible as of JLS3; only the second form existed in the JLS2 API.)

Returns:
true if this is a qualified type, and false otherwise
Since:
3.1

isUnionType

public final boolean isUnionType()
Returns whether this type is a union type (UnionType).

Returns:
true if this is a union type, and false otherwise
Since:
3.7.1

isIntersectionType

public final boolean isIntersectionType()
Returns whether this type is an intersection type (IntersectionType).

Returns:
true if this is an intersection type, and false otherwise
Since:
3.10

isWildcardType

public final boolean isWildcardType()
Returns whether this type is a wildcard type (WildcardType).

Note that a wildcard type is only meaningful as a type argument of a ParameterizedType node.

Returns:
true if this is a wildcard type, and false otherwise
Since:
3.1

isAnnotatable

public boolean isAnnotatable()
Returns whether this type can be annotated. All sub-classes of AnnotatableType can be annotated.

Returns:
true if this type is an instance of AnnotatableType, and false otherwise
Since:
3.10

resolveBinding

public final ITypeBinding resolveBinding()
Resolves and returns the binding for this type.

Note that bindings are generally unavailable unless requested when the AST is being built.

Returns:
the type binding, or null if the binding cannot be resolved