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 }