1
2
3 package net.sourceforge.pmd.ast;
4
5 public class ASTType extends SimpleJavaNode {
6 public ASTType(int id) {
7 super(id);
8 }
9
10 public ASTType(JavaParser p, int id) {
11 super(p, id);
12 }
13
14 /***
15 * Accept the visitor. *
16 */
17 public Object jjtAccept(JavaParserVisitor visitor, Object data) {
18 return visitor.visit(this, data);
19 }
20
21 public String getTypeImage() {
22 ASTPrimitiveType prim = (ASTPrimitiveType) getFirstChildOfType(ASTPrimitiveType.class);
23 if (prim != null) {
24 return prim.getImage();
25 }
26 return ((ASTClassOrInterfaceType) getFirstChildOfType(ASTClassOrInterfaceType.class)).getImage();
27 }
28
29 public int getArrayDepth() {
30 if (jjtGetNumChildren() != 0 && (jjtGetChild(0) instanceof ASTReferenceType || jjtGetChild(0) instanceof ASTPrimitiveType)) {
31 return ((Dimensionable) jjtGetChild(0)).getArrayDepth();
32 }
33 throw new RuntimeException("ASTType.getArrayDepth called, but first child (of " + jjtGetNumChildren() + " total children) is neither a primitive nor a reference type.");
34 }
35
36 public boolean isArray() {
37 return getArrayDepth() > 0;
38 }
39
40
41 }