1 package net.sourceforge.pmd.lang.java.rule.naming; 2 3 import java.util.List; 4 5 import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration; 6 import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclarator; 7 import net.sourceforge.pmd.lang.java.rule.AbstractJavaRule; 8 9 public class MethodWithSameNameAsEnclosingClassRule extends AbstractJavaRule { 10 11 @Override 12 public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { 13 List<ASTMethodDeclarator> methods = node.findDescendantsOfType(ASTMethodDeclarator.class); 14 for (ASTMethodDeclarator m: methods) { 15 if (m.hasImageEqualTo(node.getImage())) { 16 addViolation(data, m); 17 } 18 } 19 return super.visit(node, data); 20 } 21 }