code: private void processType(ClassDoc cd, Configuration configuration,
              Collection<ClassDoc> bases, Map<ClassDoc, SortedSet<ClassDoc>> subs) {
          ClassDoc superclass = utils.getFirstVisibleSuperClassCD(cd, configuration);
          if (superclass != null) {
              if (!add(subs, superclass, cd)) {
                  return;
              } else {
                  processType(superclass, configuration, bases, subs);
              }
          } else {     // cd is java.lang.Object, add it once to the list
              if (!bases.contains(cd)) {
                  bases.add(cd);
              }
          }
          List<Type> intfacs = utils.getAllInterfaces(cd, configuration);
          for (Type intfac : intfacs) {
              add(implementingclasses, intfac.asClassDoc(), cd);
          }
      }
docs: For the class passed map it to it's own sub-class listing.
  For the Class passed, get the super class,
  if superclass is non null, (it is not "java.lang.Object")
  get the "value" from the hashmap for this key Class
  if entry not found create one and get that.
  add this Class as a sub class in the list
  Recurse till hits java.lang.Object Null SuperClass.
  
  @param cd class for which sub-class mapping to be generated.
  @param configuration the current configurtation of the doclet.