View Javadoc

1   /***
2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3   */
4   package net.sourceforge.pmd.symboltable;
5   
6   import net.sourceforge.pmd.util.UnaryFunction;
7   
8   import java.util.HashMap;
9   import java.util.List;
10  import java.util.Map;
11  
12  public class VariableUsageFinderFunction implements UnaryFunction {
13      private Map results = new HashMap();
14      private Map decls;
15      private boolean lookingForUsed;
16  
17      public VariableUsageFinderFunction(Map decls, boolean lookingForUsed) {
18          this.decls = decls;
19          this.lookingForUsed = lookingForUsed;
20      }
21  
22      public void applyTo(Object o) {
23          NameDeclaration decl = (NameDeclaration) o;
24          List usages = (List) decls.get(decl);
25          if (!usages.isEmpty()) {
26              if (lookingForUsed) {
27                  results.put(decl, usages);
28              }
29          } else {
30              if (!lookingForUsed) {
31                  results.put(decl, usages);
32              }
33          }
34      }
35  
36      public Map getUsed() {
37          return results;
38      }
39  }