code: public void printRelations(ClassDoc c) {
  	Options opt = optionProvider.getOptionsFor(c);
  	if (hidden(c) || c.name().equals("")) // avoid phantom classes, they may pop up when the source uses annotations
  	    return;
  	// Print generalization (through the Java superclass)
  	Type s = c.superclassType();
  	ClassDoc sc = s != null && !s.qualifiedTypeName().equals(Object.class.getName()) ? s.asClassDoc() : null;
  	if (sc != null && !c.isEnum() && !hidden(sc))
  	    relation(opt, RelationType.EXTENDS, c, sc, null, null, null);
  	// Print generalizations (through @extends tags)
  	for (Tag tag : c.tags("extends"))
  	    if (!hidden(tag.text()))
  		relation(opt, RelationType.EXTENDS, c, c.findClass(tag.text()), null, null, null);
  	// Print realizations (Java interfaces)
  	for (Type iface : c.interfaceTypes()) {
  	    ClassDoc ic = iface.asClassDoc();
  	    if (!hidden(ic))
  		relation(opt, RelationType.IMPLEMENTS, c, ic, null, null, null);
  	}
  	// Print other associations
  	allRelation(opt, RelationType.COMPOSED, c);
  	allRelation(opt, RelationType.NAVCOMPOSED, c);
  	allRelation(opt, RelationType.HAS, c);
  	allRelation(opt, RelationType.NAVHAS, c);
  	allRelation(opt, RelationType.ASSOC, c);
  	allRelation(opt, RelationType.NAVASSOC, c);
  	allRelation(opt, RelationType.DEPEND, c);
      }
docs: Print a class's relations