ASTLocalVariableDeclaration.java
01 /* Generated By:JJTree: Do not edit this line. ASTLocalVariableDeclaration.java */
02 
03 package net.sourceforge.pmd.lang.java.ast;
04 
05 import net.sourceforge.pmd.Rule;
06 
07 public class ASTLocalVariableDeclaration extends AbstractJavaAccessNode implements Dimensionable, CanSuppressWarnings {
08 
09     public ASTLocalVariableDeclaration(int id) {
10         super(id);
11     }
12 
13     public ASTLocalVariableDeclaration(JavaParser p, int id) {
14         super(p, id);
15     }
16 
17     /**
18      * Accept the visitor. *
19      */
20     @Override
21     public Object jjtAccept(JavaParserVisitor visitor, Object data) {
22         return visitor.visit(this, data);
23     }
24 
25     public boolean hasSuppressWarningsAnnotationFor(Rule rule) {
26         for (int i = 0; i < jjtGetNumChildren(); i++) {
27             if (jjtGetChild(iinstanceof ASTAnnotation) {
28                 ASTAnnotation a = (ASTAnnotationjjtGetChild(i);
29                 if (a.suppresses(rule)) {
30                     return true;
31                 }
32             }
33         }
34         return false;
35     }
36 
37     public boolean isArray() {
38         return checkType() + checkDecl() 0;
39     }
40 
41     public int getArrayDepth() {
42         return checkType() + checkDecl();
43     }
44 
45     public ASTType getTypeNode() {
46         for (int i = 0; i < jjtGetNumChildren(); i++) {
47             if (jjtGetChild(iinstanceof ASTType) {
48                 return (ASTTypejjtGetChild(i);
49             }
50         }
51         throw new IllegalStateException("ASTType not found");
52     }
53 
54     private int checkType() {
55         return getTypeNode().getArrayDepth();
56     }
57 
58     private ASTVariableDeclaratorId getDecl() {
59         return (ASTVariableDeclaratorIdjjtGetChild(jjtGetNumChildren()-1).jjtGetChild(0);
60     }
61 
62     private int checkDecl() {
63         return getDecl().getArrayDepth();
64     }
65 
66     /**
67      * Gets the variable name of this field.
68      * This method searches the first VariableDeclartorId node and returns it's image or <code>null</code> if the child node is not found.
69      *
70      @return a String representing the name of the variable
71      */
72     public String getVariableName() {
73         ASTVariableDeclaratorId decl = getFirstDescendantOfType(ASTVariableDeclaratorId.class);
74         if (decl != null) {
75             return decl.getImage();
76         }
77         return null;
78     }
79 }