private void populateConfigurationProperties()

in log4j-docgen/src/main/java/org/apache/logging/log4j/docgen/processor/DescriptorGenerator.java [444:482]


    private void populateConfigurationProperties(
            final ElementImports imports,
            final String qualifiedClassName,
            final Iterable<? extends Element> members,
            final Map<? super String, String> descriptions,
            final PluginType pluginType) {
        final Collection<PluginAttribute> pluginAttributes =
                new TreeSet<>(Comparator.comparing(a -> defaultString(a.getName())));
        final Collection<PluginElement> pluginElements =
                new TreeSet<>(Comparator.comparing(e -> defaultString(e.getType())));
        // Gather documentation, which can be on any member.
        for (final Element member : members) {
            final String name = getAttributeOrPropertyName(member);
            final String asciiDoc = converter.toAsciiDoc(member, imports, qualifiedClassName);
            descriptions.compute(name, (key, value) -> Stream.of(value, asciiDoc)
                    .filter(StringUtils::isNotEmpty)
                    .collect(Collectors.joining("\n")));
        }
        // Creates attributes and elements
        for (final Element member : members) {
            final String description = descriptions.get(getAttributeOrPropertyName(member));
            for (final AnnotationMirror annotation : annotations.findAttributeAndPropertyAnnotations(member)) {
                if (annotations.isAttributeAnnotation(annotation)) {
                    pluginAttributes.add(createPluginAttribute(
                            member,
                            imports,
                            qualifiedClassName,
                            description,
                            annotations
                                    .getAttributeSpecifiedName(annotation)
                                    .orElseGet(() -> getAttributeOrPropertyName(member))));
                } else {
                    pluginElements.add(createPluginElement(member, imports, qualifiedClassName, description));
                }
            }
        }
        pluginAttributes.forEach(pluginType::addAttribute);
        pluginElements.forEach(pluginType::addElement);
    }