code: private Collection<ClassDoc> subclasses(ClassDoc cd) {
          Collection<ClassDoc> ret = classToSubclass.get(cd.qualifiedName());
          if (ret == null) {
              ret = new TreeSet<ClassDoc>();
              List<ClassDoc> subs = classtree.subclasses(cd);
              if (subs != null) {
                  ret.addAll(subs);
                  for (Iterator<ClassDoc> it = subs.iterator(); it.hasNext();) {
                      ret.addAll(subclasses(it.next()));
                  }
              }
              addAll(classToSubclass, cd, ret);
          }
          return ret;
      }
docs: Return all subclasses of a class AND fill-in classToSubclass map.