KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sourceforge > pmd > symboltable > Scope


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 java.util.Map JavaDoc;
7
8 /**
9  * Provides methods which all scopes must implement
10  * <p/>
11  * See JLS 6.3 for a description of scopes
12  */

13 public interface Scope {
14
15     /**
16      * Returns a Map (VariableNameDeclaration->List(NameOccurrence,NameOccurrence)) of declarations that
17      * exist at this scope
18      */

19     Map JavaDoc getVariableDeclarations();
20
21     /**
22      * Returns a Map (VariableNameDeclaration->List(NameOccurrence,NameOccurrence)) of declarations that
23      * exist at this scope
24      */

25     Map JavaDoc getClassDeclarations();
26
27     /**
28      * Add a class declaration to this scope
29      */

30     void addDeclaration(ClassNameDeclaration decl);
31
32     /**
33      * Add a variable declaration to this scope
34      */

35     void addDeclaration(VariableNameDeclaration decl);
36
37     /**
38      * Add a method declaration to this scope
39      */

40     void addDeclaration(MethodNameDeclaration decl);
41
42     /**
43      * Tests whether or not a NameOccurrence is directly contained in the scope
44      * Note that this search is just for this scope - it doesn't go diving into any
45      * child scopes.
46      */

47     boolean contains(NameOccurrence occ);
48
49     /**
50      * Adds a NameOccurrence to this scope - only call this after getting
51      * a true back from contains()
52      */

53     NameDeclaration addVariableNameOccurrence(NameOccurrence occ);
54
55     /**
56      * Points this scope to its parent
57      */

58     void setParent(Scope parent);
59
60     /**
61      * Retrieves this scope's parent
62      */

63     Scope getParent();
64
65     /**
66      * Goes searching up the tree for this scope's enclosing ClassScope
67      * This is handy if you're buried down in a LocalScope and need to
68      * hop up to the ClassScope to find a method name.
69      */

70     ClassScope getEnclosingClassScope();
71
72     /**
73      * Goes searching up the tree for this scope's enclosing SourceFileScope
74      * This is handy if you're buried down in a LocalScope and need to
75      * hop up to the SourceFileScope to find a class name.
76      */

77     SourceFileScope getEnclosingSourceFileScope();
78
79     /**
80      * Goes searching up the tree for this scope's enclosing SourceFileScope
81      * This is handy if you're buried down in a LocalScope and need to
82      * hop up to the MethodScope to find a method parameter.
83      */

84     MethodScope getEnclosingMethodScope();
85 }
86
Popular Tags