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

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.core.dom.ASTNode
      extended by org.aspectj.org.eclipse.jdt.core.dom.Type
          extended by org.aspectj.org.eclipse.jdt.core.dom.AnnotatableType
              extended by org.aspectj.org.eclipse.jdt.core.dom.QualifiedType

public class QualifiedType
extends AnnotatableType

Type node for a qualified type (added in JLS3 API).

 QualifiedType:
    Type . { Annotation } SimpleName
 

Not all node arrangements will represent legal Java constructs. In particular, it is nonsense if the type is an array type or primitive type. The normal use is when the type is a ParameterizedType, an annotated QualifiedType, or a NameQualifiedType.

A "."-separated type like "A.B" can be represented in three ways:

 1.    SimpleType       | 2. NameQualifiedType   | 3.  QualifiedType
     QualifiedName      | SimpleName  SimpleName | SimpleType  SimpleName
 SimpleName  SimpleName |     "A"         "B"    | SimpleName      "B"
     "A"         "B"    |                        |     "A"
 

The ASTParser creates the SimpleType form (wrapping a name) if possible. The SimpleType form doesn't support any embedded Annotations nor ParameterizedTypes. The NameQualifiedType form is only available since JLS8 and the QualifiedType form only since JLS3. The NameQualifiedType and QualifiedType forms allow Annotations on the last SimpleName. The QualifiedType form cannot be used if the qualifier represents a package name.

The part before the last "." is called the qualifier of a type. If the name after the last "." has annotations or if the qualifier is not a (possibly qualified) name, then the ASTParser creates either a NameQualifiedType or a QualifiedType:

Since:
3.1
See Also:
SimpleType, NameQualifiedType

Field Summary
static ChildListPropertyDescriptor ANNOTATIONS_PROPERTY
          The "annotations" structural property of this node type (element type: Annotation).
static ChildPropertyDescriptor NAME_PROPERTY
          The "name" structural property of this node type (child type: SimpleName).
static ChildPropertyDescriptor QUALIFIER_PROPERTY
          The "qualifier" structural property of this node type (child type: Type).
 
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
 SimpleName getName()
          Returns the name part of this qualified type.
 Type getQualifier()
          Returns the qualifier of this qualified type.
static java.util.List propertyDescriptors(int apiLevel)
          Returns a list of structural property descriptors for this node type.
 void setName(SimpleName name)
          Sets the name part of this qualified type to the given simple name.
 void setQualifier(Type type)
          Sets the qualifier of this qualified type to the given type.
 
Methods inherited from class org.aspectj.org.eclipse.jdt.core.dom.AnnotatableType
annotations, getAnnotationsProperty
 
Methods inherited from class org.aspectj.org.eclipse.jdt.core.dom.Type
isAnnotatable, isArrayType, isIntersectionType, isNameQualifiedType, isParameterizedType, isPrimitiveType, isQualifiedType, isSimpleType, isUnionType, isWildcardType, resolveBinding
 
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
 

Field Detail

QUALIFIER_PROPERTY

public static final ChildPropertyDescriptor QUALIFIER_PROPERTY
The "qualifier" structural property of this node type (child type: Type).


ANNOTATIONS_PROPERTY

public static final ChildListPropertyDescriptor ANNOTATIONS_PROPERTY
The "annotations" structural property of this node type (element type: Annotation).

Since:
3.10

NAME_PROPERTY

public static final ChildPropertyDescriptor NAME_PROPERTY
The "name" structural property of this node type (child type: SimpleName).

Method Detail

propertyDescriptors

public static java.util.List propertyDescriptors(int apiLevel)
Returns a list of structural property descriptors for this node type. Clients must not modify the result.

Parameters:
apiLevel - the API level; one of the AST.JLS* constants
Returns:
a list of property descriptors (element type: StructuralPropertyDescriptor)

getQualifier

public Type getQualifier()
Returns the qualifier of this qualified type.

Returns:
the qualifier of this qualified type

setQualifier

public void setQualifier(Type type)
Sets the qualifier of this qualified type to the given type.

Parameters:
type - the new qualifier of this qualified type
Throws:
java.lang.IllegalArgumentException - if:
  • the node belongs to a different AST
  • the node already has a parent

getName

public SimpleName getName()
Returns the name part of this qualified type.

Returns:
the name being qualified

setName

public void setName(SimpleName name)
Sets the name part of this qualified type to the given simple name.

Parameters:
name - the identifier of this qualified name
Throws:
java.lang.IllegalArgumentException - if:
  • the node belongs to a different AST
  • the node already has a parent