View Javadoc

    1   /* Generated By:JJTree: Do not edit this line. ASTFormalParameter.java */
    2
    3   package net.sourceforge.pmd.lang.java.ast;
    4
    5   import net.sourceforge.pmd.Rule;
    6
    7   public class ASTFormalParameter extends AbstractJavaAccessNode implements Dimensionable, CanSuppressWarnings {
    8
    9       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(i) instanceof ASTAnnotation) {
    35                  ASTAnnotation a = (ASTAnnotation) jjtGetChild(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(i) instanceof ASTType) {
    58                  return (ASTType) jjtGetChild(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 (ASTVariableDeclaratorId) jjtGetChild(jjtGetNumChildren()-1);
    70      }
    71
    72      private int checkDecl() {
    73          return getDecl().getArrayDepth();
    74      }
    75
    76  }