private List renderDoxiaDocuments()

in src/main/java/org/apache/maven/plugins/site/render/SiteMojo.java [169:254]


    private List<DocumentRenderer> renderDoxiaDocuments(
            Collection<DocumentRenderer> documents, SiteRenderingContext context, File outputDirectory)
            throws RendererException, IOException {
        List<DocumentRenderer> doxiaDocuments = new ArrayList<>();
        List<DocumentRenderer> generatedDoxiaDocuments = new ArrayList<>();
        List<DocumentRenderer> nonDoxiaDocuments = new ArrayList<>();

        Map<String, Integer> counts = new TreeMap<>();
        Map<String, Integer> generatedCounts = new TreeMap<>();

        for (DocumentRenderer doc : documents) {
            if (doc instanceof DoxiaDocumentRenderer) {
                DoxiaDocumentRenderer doxia = (DoxiaDocumentRenderer) doc;
                boolean editable = doxia.getRenderingContext().isEditable();

                if (editable) {
                    doxiaDocuments.add(doc);
                } else {
                    generatedDoxiaDocuments.add(doc);
                }

                // count documents per parserId
                String parserId = doxia.getRenderingContext().getParserId();
                Map<String, Integer> actualCounts;
                if (editable) {
                    actualCounts = counts;
                } else {
                    actualCounts = generatedCounts;
                }
                Integer count = actualCounts.get(parserId);
                if (count == null) {
                    count = 1;
                } else {
                    count++;
                }
                actualCounts.put(parserId, count);
            } else {
                nonDoxiaDocuments.add(doc);
            }
        }

        if (doxiaDocuments.size() > 0) {
            MessageBuilder mb = buffer();
            mb.a("Rendering ");
            mb.strong(doxiaDocuments.size() + " Doxia document" + (doxiaDocuments.size() > 1 ? "s" : ""));
            mb.a(": ");

            boolean first = true;
            for (Map.Entry<String, Integer> entry : counts.entrySet()) {
                if (first) {
                    first = false;
                } else {
                    mb.a(", ");
                }
                mb.strong(entry.getValue() + " " + entry.getKey());
            }

            getLog().info(mb.build());

            siteRenderer.render(doxiaDocuments, context, outputDirectory);
        }

        if (generatedDoxiaDocuments.size() > 0) {
            MessageBuilder mb = buffer();
            mb.a("Rendering ");
            mb.strong(generatedDoxiaDocuments.size() + " generated Doxia document"
                    + (generatedDoxiaDocuments.size() > 1 ? "s" : ""));
            mb.a(": ");

            boolean first = true;
            for (Map.Entry<String, Integer> entry : generatedCounts.entrySet()) {
                if (first) {
                    first = false;
                } else {
                    mb.a(", ");
                }
                mb.strong(entry.getValue() + " " + entry.getKey());
            }

            getLog().info(mb.build());

            siteRenderer.render(generatedDoxiaDocuments, context, outputDirectory);
        }

        return nonDoxiaDocuments;
    }