View Javadoc

1   package net.sourceforge.pmd.cpd.cppast;
2   
3   import java.util.Vector;
4   
5   /***
6    * Class scope extends Scope in that its search method also searches all its
7    * superclasses.
8    */
9   
10  public class ClassScope extends Scope
11  {
12     /***
13      * The list of scopes corresponding to classes this class inherits.
14      */
15     Vector superClasses;
16  
17     /***
18      * Add a super class.
19      */
20     public void AddSuper(Scope sc)
21     {
22        if (sc == null)
23           return;
24  
25        if (superClasses == null)
26           superClasses = new Vector();
27  
28        superClasses.addElement(sc);
29     }
30  
31     /***
32      * Overrides the method in Scope. It also searches in the inherited classes'
33      * scopes also.
34      */
35     public boolean IsTypeName(String name)
36     {
37        if (super.IsTypeName(name))
38           return true;
39  
40        if (superClasses == null)
41           return false;
42  
43        for (int i = 0; i < superClasses.size(); i++)
44           if (((Scope)superClasses.elementAt(i)).IsTypeName(name))
45              return true;
46  
47        return false;
48     }
49  
50     /***
51      * Creates a new class scope in a given scope.
52      */
53     public ClassScope(String name, Scope parent)
54     {
55        super(name, true, parent);
56     }
57  }