|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.aspectj.org.eclipse.jdt.core.dom.ASTNode
org.aspectj.org.eclipse.jdt.core.dom.Type
org.aspectj.org.eclipse.jdt.core.dom.ArrayType
public class ArrayType
Type node for an array type.
In JLS8 and later, array types are represented by a base element type (which cannot be an array type) and a list of dimensions, each of which may have a list of annotations.
ArrayType:
Type Dimension { Dimension }
In JLS4 and before, array types were expressed in a recursive manner, one dimension at a time:
ArrayType:
Type [ ]
This structure became untenable with the advent of type-use annotations,
because in the language model, the base type binds with array dimensions from right to left,
whereas a recursive structure binds from left to right (inside out).
Example:
int @A[] @B[] @C[]
is an @A-array of
int @B[] @C[],
but such a component type is not representable by nested ArrayTypes with contiguous source ranges.
| Field Summary | |
|---|---|
static ChildPropertyDescriptor |
COMPONENT_TYPE_PROPERTY
Deprecated. In the JLS8 API, this property is replaced by ELEMENT_TYPE_PROPERTY and DIMENSIONS_PROPERTY. |
static ChildListPropertyDescriptor |
DIMENSIONS_PROPERTY
The "dimensions" structural property of this node type (element type: Dimension) (added in JLS8 API). |
static ChildPropertyDescriptor |
ELEMENT_TYPE_PROPERTY
The "elementType" structural property of this node type (child type: Type) (added in JLS8 API). |
| Method Summary | |
|---|---|
java.util.List |
dimensions()
Returns the live ordered list of dimensions with optional annotations (added in JLS8 API). |
Type |
getComponentType()
Deprecated. In the JLS8 API, the recursive structure is not valid. |
int |
getDimensions()
Returns the number of dimensions in this array type. |
Type |
getElementType()
Returns the element type of this array type. |
static java.util.List |
propertyDescriptors(int apiLevel)
Returns a list of structural property descriptors for this node type. |
void |
setComponentType(Type componentType)
Deprecated. In the JLS8 API, the recursive structure is not valid. |
void |
setElementType(Type type)
Sets the element type of the array. |
| 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 |
|---|
public static final ChildPropertyDescriptor COMPONENT_TYPE_PROPERTY
ELEMENT_TYPE_PROPERTY and DIMENSIONS_PROPERTY.Type).
public static final ChildPropertyDescriptor ELEMENT_TYPE_PROPERTY
Type) (added in JLS8 API).
Cannot be an array type.
public static final ChildListPropertyDescriptor DIMENSIONS_PROPERTY
Dimension) (added in JLS8 API).
| Method Detail |
|---|
public static java.util.List propertyDescriptors(int apiLevel)
apiLevel - the API level; one of the
AST.JLS* constants
StructuralPropertyDescriptor)public Type getComponentType()
java.lang.UnsupportedOperationException - if this operation is used in
an AST later than JLS4dimensions()public void setComponentType(Type componentType)
componentType - the component type
java.lang.IllegalArgumentException - if:
java.lang.UnsupportedOperationException - if this operation is used in
an AST later than JLS4public Type getElementType()
In JLS4 and earlier, this is a convenience method that descends a chain of nested array types until it reaches a non-array type.
public void setElementType(Type type)
type - the new type
java.lang.IllegalArgumentException - if:
java.lang.UnsupportedOperationException - if this operation is used below JLS8public int getDimensions()
In JLS8 and later, this is a convenience method that returns dimensions().size().
In JLS4 and earlier, this is a convenience method that descends a chain of nested array types until it reaches a non-array type.
public java.util.List dimensions()
For the array type to be plausible, the list should contain at least one element.
Dimension)
java.lang.UnsupportedOperationException - if this operation is used below JLS8
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||