View Javadoc

1   /* Generated By:JJTree: Do not edit this line. ASTLocalVariableDeclaration.java */
2   
3   package net.sourceforge.pmd.lang.java.ast;
4   
5   import net.sourceforge.pmd.Rule;
6   
7   public class ASTLocalVariableDeclaration extends AbstractJavaAccessNode implements Dimensionable, CanSuppressWarnings {
8   
9       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(i) instanceof ASTAnnotation) {
28                  ASTAnnotation a = (ASTAnnotation) jjtGetChild(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(i) instanceof ASTType) {
48                  return (ASTType) jjtGetChild(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 (ASTVariableDeclaratorId) jjtGetChild(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  }