package net.sourceforge.pmd.cpd.cppast; import java.util.Vector; /** * Class scope extends Scope in that its search method also searches all its * superclasses. */ public class ClassScope extends Scope { /** * The list of scopes corresponding to classes this class inherits. */ Vector superClasses; /** * Add a super class. */ public void AddSuper(Scope sc) { if (sc == null) return; if (superClasses == null) superClasses = new Vector(); superClasses.addElement(sc); } /** * Overrides the method in Scope. It also searches in the inherited classes' * scopes also. */ public boolean IsTypeName(String name) { if (super.IsTypeName(name)) return true; if (superClasses == null) return false; for (int i = 0; i < superClasses.size(); i++) if (((Scope)superClasses.elementAt(i)).IsTypeName(name)) return true; return false; } /** * Creates a new class scope in a given scope. */ public ClassScope(String name, Scope parent) { super(name, true, parent); } }