ASTFormalParameter.java
01 /* Generated By:JJTree: Do not edit this line. ASTFormalParameter.java */
02 
03 package net.sourceforge.pmd.lang.java.ast;
04 
05 import net.sourceforge.pmd.Rule;
06 
07 public class ASTFormalParameter extends AbstractJavaAccessNode implements Dimensionable, CanSuppressWarnings {
08 
09     private boolean isVarargs;
10 
11 
12     public void setVarargs() {
13         isVarargs = true;
14     }
15 
16     public boolean isVarargs() {
17         return isVarargs;
18     }
19     
20     public ASTFormalParameter(int id) {
21         super(id);
22     }
23 
24     public ASTFormalParameter(JavaParser p, int id) {
25         super(p, id);
26     }
27 
28     public Object jjtAccept(JavaParserVisitor visitor, Object data) {
29         return visitor.visit(this, data);
30     }
31 
32     public boolean hasSuppressWarningsAnnotationFor(Rule rule) {
33         for (int i = 0; i < jjtGetNumChildren(); i++) {
34             if (jjtGetChild(iinstanceof ASTAnnotation) {
35                 ASTAnnotation a = (ASTAnnotationjjtGetChild(i);
36                 if (a.suppresses(rule)) {
37                     return true;
38                 }
39             }
40         }
41         return false;
42     }
43 
44     public boolean isArray() {
45         return checkType() + checkDecl() 0;
46     }
47 
48     public int getArrayDepth() {
49         if (!isArray()) {
50             return 0;
51         }
52         return checkType() + checkDecl();
53     }
54 
55     public ASTType getTypeNode() {
56         for (int i = 0; i < jjtGetNumChildren(); i++) {
57             if (jjtGetChild(iinstanceof ASTType) {
58                 return (ASTTypejjtGetChild(i);
59             }
60         }
61         throw new IllegalStateException("ASTType not found");
62     }
63 
64     private int checkType() {
65         return getTypeNode().getArrayDepth();
66     }
67 
68     private ASTVariableDeclaratorId getDecl() {
69         return (ASTVariableDeclaratorIdjjtGetChild(jjtGetNumChildren()-1);
70     }
71 
72     private int checkDecl() {
73         return getDecl().getArrayDepth();
74     }
75 
76 }