1 /***
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package net.sourceforge.pmd.rules;
5
6 import net.sourceforge.pmd.AbstractRule;
7 import net.sourceforge.pmd.RuleContext;
8 import net.sourceforge.pmd.ast.ASTUnmodifiedClassDeclaration;
9 import net.sourceforge.pmd.symboltable.VariableNameDeclaration;
10
11 import java.text.MessageFormat;
12 import java.util.Iterator;
13
14 public class UnusedPrivateFieldRule extends AbstractRule {
15
16 public Object visit(ASTUnmodifiedClassDeclaration node, Object data) {
17 for (Iterator i = node.getScope().getVariableDeclarations(false).keySet().iterator(); i.hasNext();) {
18 VariableNameDeclaration decl = (VariableNameDeclaration) i.next();
19 if (decl.getAccessNodeParent().isPrivate() && !decl.getImage().equals("serialVersionUID") && !decl.getImage().equals("serialPersistentFields") && !decl.getImage().equals("IDENT")) {
20 RuleContext ctx = (RuleContext) data;
21 ctx.getReport().addRuleViolation(createRuleViolation(ctx, decl.getLine(), MessageFormat.format(getMessage(), new Object[]{decl.getImage()})));
22 }
23 }
24 return super.visit(node, data);
25 }
26
27 }
This page was automatically generated by Maven