View Javadoc

1   package net.sourceforge.pmd.rules;
2   
3   import net.sourceforge.pmd.AbstractRule;
4   import net.sourceforge.pmd.RuleContext;
5   import net.sourceforge.pmd.ast.ASTClassOrInterfaceDeclaration;
6   import net.sourceforge.pmd.ast.ASTMethodDeclarator;
7   
8   import java.util.Iterator;
9   import java.util.List;
10  
11  public class MethodWithSameNameAsEnclosingClass extends AbstractRule {
12  
13      public Object visit(ASTClassOrInterfaceDeclaration node, Object data) {
14          List methods = node.findChildrenOfType(ASTMethodDeclarator.class);
15          for (Iterator i = methods.iterator(); i.hasNext();) {
16              ASTMethodDeclarator m = (ASTMethodDeclarator)i.next();
17              if (m.getImage().equals(node.getImage())) {
18                  RuleContext ctx = (RuleContext)data;
19                  ctx.getReport().addRuleViolation(createRuleViolation(ctx, m));
20              }
21          }
22          return super.visit(node, data);
23      }
24  }