1 4 package net.sourceforge.pmd.rules; 5 6 import net.sourceforge.pmd.AbstractRule; 7 import net.sourceforge.pmd.ast.ASTClassOrInterfaceDeclaration; 8 import net.sourceforge.pmd.ast.ASTFieldDeclaration; 9 10 public class AvoidFieldNameMatchingTypeName extends AbstractRule { 11 12 public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { 13 if (node.isInterface()) { 14 return data; 15 } 16 return super.visit(node, data); 17 } 18 19 public Object visit(ASTFieldDeclaration node, Object data) { 20 ASTClassOrInterfaceDeclaration cl = (ASTClassOrInterfaceDeclaration) node.getFirstParentOfType(ASTClassOrInterfaceDeclaration.class); 21 if (cl != null && node.getVariableName().toLowerCase().equals(cl.getImage().toLowerCase())) { 22 addViolation(data, node); 23 } 24 return data; 25 } 26 } 27 | Popular Tags |