SourceFileScope xref

View Javadoc
1 package net.sourceforge.pmd.symboltable;
2 
3 import net.sourceforge.pmd.util.Applier;
4 
5 import java.util.ArrayList;
6 import java.util.List;
7 import java.util.HashMap;
8 import java.util.Map;
9 
10 public class SourceFileScope extends AbstractScope {
11 
12 protected Map<ClassNameDeclaration, List<NameOccurrence>> classNames = new HashMap<ClassNameDeclaration, List<NameOccurrence>>();
13 private String packageImage;
14 
15 public SourceFileScope() {
16 this("");
17 }
18 
19 public SourceFileScope(String image) {
20 this.packageImage = image;
21 }
22 
23 public ClassScope getEnclosingClassScope() {
24 throw new RuntimeException("getEnclosingClassScope() called on SourceFileScope");
25 }
26 
27 public MethodScope getEnclosingMethodScope() {
28 throw new RuntimeException("getEnclosingMethodScope() called on SourceFileScope");
29 }
30 
31 public String getPackageName() {
32 return packageImage;
33 }
34 
35 public SourceFileScope getEnclosingSourceFileScope() {
36 return this;
37 }
38 
39 public void addDeclaration(ClassNameDeclaration classDecl) {
40 classNames.put(classDecl, new ArrayList<NameOccurrence>());
41 }
42 
43 public void addDeclaration(MethodNameDeclaration decl) {
44 throw new RuntimeException("SourceFileScope.addDeclaration(MethodNameDeclaration decl) called");
45 }
46 
47 public void addDeclaration(VariableNameDeclaration decl) {
48 throw new RuntimeException("SourceFileScope.addDeclaration(VariableNameDeclaration decl) called");
49 }
50 
51 public Map<ClassNameDeclaration, List<NameOccurrence>> getClassDeclarations() {
52 return classNames;
53 }
54 
55 public Map<VariableNameDeclaration, List<NameOccurrence>> getVariableDeclarations() {
56 throw new RuntimeException("PackageScope.getVariableDeclarations() called");
57 }
58 
59 public NameDeclaration addVariableNameOccurrence(NameOccurrence occ) {
60 return null;
61 }
62 
63 public String toString() {
64 return "SourceFileScope: " + glomNames(classNames.keySet());
65 }
66 
67 protected NameDeclaration findVariableHere(NameOccurrence occ) {
68 ImageFinderFunction finder = new ImageFinderFunction(occ.getImage());
69 Applier.apply(finder, classNames.keySet().iterator());
70 return finder.getDecl();
71 }
72 
73 }

AltStyle によって変換されたページ (->オリジナル) /