1 package net.sourceforge.pmd.lang.java.rule.unnecessary; 2 3 import net.sourceforge.pmd.lang.java.ast.ASTBlock; 4 import net.sourceforge.pmd.lang.java.ast.ASTBlockStatement; 5 import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclaration; 6 import net.sourceforge.pmd.lang.java.ast.ASTReturnStatement; 7 import net.sourceforge.pmd.lang.java.ast.ASTStatement; 8 import net.sourceforge.pmd.lang.java.rule.AbstractJavaRule; 9 10 public class UnnecessaryReturnRule extends AbstractJavaRule { 11 12 public Object visit(ASTMethodDeclaration node, Object data) { 13 14 if (node.getResultType().isVoid()) { 15 super.visit(node, data); 16 } 17 return data; 18 } 19 20 public Object visit(ASTReturnStatement node, Object data) { 21 if (node.jjtGetParent() instanceof ASTStatement && node.getNthParent(2) instanceof ASTBlockStatement && node.getNthParent(3) instanceof ASTBlock 22 && node.getNthParent(4) instanceof ASTMethodDeclaration) { 23 addViolation(data, node); 24 } 25 return data; 26 } 27 28 }