View Javadoc

1   package net.sourceforge.pmd.rules;
2   
3   import net.sourceforge.pmd.AbstractRule;
4   import net.sourceforge.pmd.ast.ASTBlock;
5   import net.sourceforge.pmd.ast.ASTEmptyStatement;
6   import net.sourceforge.pmd.ast.ASTIfStatement;
7   import net.sourceforge.pmd.ast.ASTStatement;
8   import net.sourceforge.pmd.ast.Node;
9   
10  public class EmptyIf extends AbstractRule {
11  
12      public Object visit(ASTIfStatement node, Object data) {
13          ASTStatement stmt = (ASTStatement)node.jjtGetChild(1);
14          Node stmtChild = stmt.jjtGetChild(0);
15          if (stmtChild instanceof ASTEmptyStatement) {
16              addViolation(data, node);
17          } else if (stmtChild instanceof ASTBlock && stmtChild.jjtGetNumChildren() == 0) {
18              addViolation(data, node);
19          }
20          return super.visit(node, data);
21      }
22  }