AbstractOptimizationRule.java
01 /*
02  * Created on Jan 11, 2005 
03  *
04  * $Id: AbstractOptimizationRule.java 6927 2009-04-28 05:34:25Z rgustav $
05  */
06 package net.sourceforge.pmd.lang.java.rule.optimizations;
07 
08 import java.util.List;
09 
10 import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration;
11 import net.sourceforge.pmd.lang.java.rule.AbstractJavaRule;
12 import net.sourceforge.pmd.lang.java.symboltable.NameOccurrence;
13 
14 /**
15  * Base class with utility methods for optimization rules
16  *
17  @author mgriffa
18  */
19 public class AbstractOptimizationRule extends AbstractJavaRule {
20 
21     public Object visit(ASTClassOrInterfaceDeclaration node, Object data) {
22         if (node.isInterface()) {
23             return data;
24         }
25         return super.visit(node, data);
26     }
27 
28     protected boolean assigned(List<NameOccurrence> usages) {
29         for (NameOccurrence occ: usages) {
30             if (occ.isOnLeftHandSide() || occ.isSelfAssignment()) {
31                 return true;
32             }
33         }
34         return false;
35     }
36 
37 }