View Javadoc

    1   /* Generated By:JJTree: Do not edit this line. ASTAnnotation.java */
    2
    3   package net.sourceforge.pmd.ast;
    4
    5   import net.sourceforge.pmd.Rule;
    6
    7   import java.util.Iterator;
    8   import java.util.List;
    9
    10  public class ASTAnnotation extends SimpleJavaNode {
    11      public ASTAnnotation(int id) {
    12          super(id);
    13      }
    14
    15      public ASTAnnotation(JavaParser p, int id) {
    16          super(p, id);
    17      }
    18
    19      public boolean suppresses(Rule rule) {
    20          final String ruleAnno = "\"PMD." + rule.getName() + "\"";
    21
    22          if (jjtGetChild(0) instanceof ASTSingleMemberAnnotation) {
    23              ASTSingleMemberAnnotation n = (ASTSingleMemberAnnotation) jjtGetChild(0);
    24
    25              if (n.jjtGetChild(0) instanceof ASTName) {
    26                  ASTName annName = ((ASTName) n.jjtGetChild(0));
    27
    28                  if (annName.getImage().equals("SuppressWarnings")) {
    29                      List nodes = n.findChildrenOfType(ASTLiteral.class);
    30                      for (Iterator iter = nodes.iterator(); iter.hasNext();) {
    31                          ASTLiteral element = (ASTLiteral) iter.next();
    32                          if (element.hasImageEqualTo("\"PMD\"")
    33                                  || element.hasImageEqualTo(ruleAnno)) {
    34                              return true;
    35                          }
    36                      }
    37                  }
    38              }
    39          }
    40          return false;
    41      }
    42
    43      /***
    44       * Accept the visitor.
    45       */
    46      public Object jjtAccept(JavaParserVisitor visitor, Object data) {
    47          return visitor.visit(this, data);
    48      }
    49  }