blob: b3113040b53e2f4bd490bc4edfb8b917fd92f193 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
/*******************************************************************************
* Copyright (c) 2000, 2003 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.jsdt.core.dom;
/**
* Abstract base class of all type AST node types. A type node represents a
* reference to a primitive type (including void), to a named class or
* interface type, or to an array type.
* <p>
* <pre>
* Type:
* PrimitiveType
* SimpleType
* ArrayType
* PrimitiveType:
* <b>byte</b>
* <b>short</b>
* <b>char</b>
* <b>int</b>
* <b>long</b>
* <b>float</b>
* <b>double</b>
* <b>boolean</b>
* <b>void</b>
* SimpleType:
* TypeName
* ArrayType:
* Type <b>[</b> <b>]</b>
* </pre>
* </p>
*
* @since 2.0
*/
public abstract class Type extends ASTNode {
/**
* Creates a new AST node for a type owned by the given AST.
* <p>
* N.B. This constructor is package-private.
* </p>
*
* @param ast the AST that is to own this node
*/
Type(AST ast) {
super(ast);
}
/**
* Returns whether this type is a primitive type
* (<code>PrimitiveType</code>).
*
* @return <code>true</code> if this is a primitive type, and
* <code>false</code> otherwise
*/
public final boolean isPrimitiveType() {
return (this instanceof PrimitiveType);
}
/**
* Returns whether this type is a simple type
* (<code>SimpleType</code>).
*
* @return <code>true</code> if this is a simple type, and
* <code>false</code> otherwise
*/
public final boolean isSimpleType() {
return (this instanceof SimpleType);
}
/**
* Returns whether this type is an array type
* (<code>ArrayType</code>).
*
* @return <code>true</code> if this is an array type, and
* <code>false</code> otherwise
*/
public final boolean isArrayType() {
return (this instanceof ArrayType);
}
/**
* Resolves and returns the binding for this type.
* <p>
* Note that bindings are generally unavailable unless requested when the
* AST is being built.
* </p>
*
* @return the type binding, or <code>null</code> if the binding cannot be
* resolved
*/
public final ITypeBinding resolveBinding() {
return getAST().getBindingResolver().resolveType(this);
}
// JSR-014
// /**
// * Returns whether this type is a parameterized type
// * (<code>ParameterizedType</code>).
// *
// * @return <code>true</code> if this is a parameterized type, and
// * <code>false</code> otherwise
// */
// public final boolean isParameterizedType() {
// return (this instanceof ParameterizedType);
// }
// public IBinding resolvedType();
}
//// JSR-014
//public class ParameterizedType extends Type {
// public ParameterizedType(AST ast) {
// super(ast);
// }
//
// public Type getGenericType();
// public void setGenericType(Type genericType);
//
// public NodeList<Type> parameters();
//}
|