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       * The list of scopes corresponding to classes this class inherits.
13       */
14      Vector superClasses;
15  
16      /***
17       * Add a super class.
18       */
19      public void AddSuper(Scope sc) {
20          if (sc == null)
21              return;
22  
23          if (superClasses == null)
24              superClasses = new Vector();
25  
26          superClasses.addElement(sc);
27      }
28  
29      /***
30       * Overrides the method in Scope. It also searches in the inherited classes'
31       * scopes also.
32       */
33      public boolean IsTypeName(String name) {
34          if (super.IsTypeName(name))
35              return true;
36  
37          if (superClasses == null)
38              return false;
39  
40          for (int i = 0; i < superClasses.size(); i++)
41              if (((Scope) superClasses.elementAt(i)).IsTypeName(name))
42                  return true;
43  
44          return false;
45      }
46  
47      /***
48       * Creates a new class scope in a given scope.
49       */
50      public ClassScope(String name, Scope parent) {
51          super(name, true, parent);
52      }
53  }