public WDBObject getParentObject(String superClassName, ParserAdapter scda) throws Exception { ClassDef myClass = this.getClassDef(scda); // See if its parent of this class if (myClass.getClass() == SubclassDef.class) { // See if its one of my immediate superclasses. if (parents.containsKey(superClassName)) { return scda.getObject(superClassName, ((Integer) parents.get(superClassName))); } // Not immediate superclass of me. Check my parents. Enumeration e = parents.keys(); while (e.hasMoreElements()) { String parentClass = (String) e.nextElement(); Integer parentUid = (Integer) parents.get(parentClass); WDBObject parent = scda.getObject(parentClass, parentUid); WDBObject grandparent = parent.getParentObject(superClassName, scda); if (grandparent != null) { return grandparent; } } // Not any superClass of mine! return null; } else { return null; } }