in log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/processor/DescriptorGenerator.java [561:585]
private Set<String> registerSupertypes(final TypeElement element) {
final Set<String> supertypes = new TreeSet<>();
element.accept(
new SimpleElementVisitor8<Void, Set<String>>() {
@Override
public Void visitType(final TypeElement element, final Set<String> supertypes) {
registerAndVisit(element.getSuperclass(), supertypes);
element.getInterfaces().forEach(iface -> registerAndVisit(iface, supertypes));
return null;
}
private void registerAndVisit(final TypeMirror type, final Set<String> supertypes) {
if (type instanceof DeclaredType) {
final TypeElement element = asTypeElement((DeclaredType) type);
final String className = element.getQualifiedName().toString();
abstractTypesToDocument.add(element);
if (supertypes.add(className)) {
element.accept(this, supertypes);
}
}
}
},
supertypes);
return supertypes;
}