public static Hashtable buildInheritanceHierarchyTree(Project project) {
   Map descriptors = project.getDescriptors();
   Hashtable hierarchyTree = new Hashtable(descriptors.size());
   for (Iterator descriptorIterator = descriptors.values().iterator();
       descriptorIterator.hasNext(); ) {
     ClassDescriptor descriptor = (ClassDescriptor) descriptorIterator.next();
     String className = descriptor.getJavaClassName();
     if (className == null) {
       className = descriptor.getJavaClass().getName();
     }
     HierarchyNode node = getNodeForClass(className, hierarchyTree);
     if (descriptor.hasInheritance()
         && (descriptor.getInheritancePolicy().getParentClassName() != null)) {
       HierarchyNode parentNode =
           getNodeForClass(descriptor.getInheritancePolicy().getParentClassName(), hierarchyTree);
       node.setParent(parentNode);
     }
   }
   return hierarchyTree;
 }