code: private void genClassSignature(TypeElement type, StringBuilder sb) {
      genOptFormalTypeParameters(type.getTypeParameters(), sb);
      // JDT returns null for an interface's superclass, but signatures expect Object.
      if (type.getKind().isInterface()) {
        sb.append(JAVA_OBJECT_SIGNATURE);
      } else {
        genTypeSignature(type.getSuperclass(), sb);
      }
      for (TypeMirror intrface : type.getInterfaces()) {
        genTypeSignature(intrface, sb);
      }
    }
docs: ClassSignature ::=
  OptFormalTypeParameters SuperclassSignature {SuperinterfaceSignature}.