01 package net.sourceforge.pmd.lang.java.rule.naming;
02
03 import java.util.List;
04
05 import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration;
06 import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclarator;
07 import net.sourceforge.pmd.lang.java.rule.AbstractJavaRule;
08
09 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 }
|