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 }