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 }