private Set registerSupertypes()

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;
    }