private void generateStats()

in src/main/java/org/apache/maven/report/projectinfo/DependencyConvergenceReport.java [506:619]


    private void generateStats(Locale locale, Sink sink, DependencyAnalyzeResult result) {
        int depCount = result.getDependencyCount();

        int artifactCount = result.getArtifactCount();
        int snapshotCount = result.getSnapshotCount();
        int conflictingCount = result.getConflictingCount();

        int convergence = calculateConvergence(result);

        // Create report
        sink.table();
        sink.tableRows(null, false);
        sink.tableCaption();
        sink.bold();
        sink.text(getI18nString(locale, "stats.caption"));
        sink.bold_();
        sink.tableCaption_();

        if (isReactorBuild()) {
            sink.tableRow();
            sink.tableHeaderCell();
            sink.text(getI18nString(locale, "stats.modules"));
            sink.tableHeaderCell_();
            sink.tableCell();
            sink.text(String.valueOf(reactorProjects.size()));
            sink.tableCell_();
            sink.tableRow_();
        }

        sink.tableRow();
        sink.tableHeaderCell();
        sink.text(getI18nString(locale, "stats.dependencies"));
        sink.tableHeaderCell_();
        sink.tableCell();
        sink.text(String.valueOf(depCount));
        sink.tableCell_();
        sink.tableRow_();

        sink.tableRow();
        sink.tableHeaderCell();
        sink.text(getI18nString(locale, "stats.artifacts"));
        sink.tableHeaderCell_();
        sink.tableCell();
        sink.text(String.valueOf(artifactCount));
        sink.tableCell_();
        sink.tableRow_();

        sink.tableRow();
        sink.tableHeaderCell();
        sink.text(getI18nString(locale, "stats.conflicting"));
        sink.tableHeaderCell_();
        sink.tableCell();
        sink.text(String.valueOf(conflictingCount));
        sink.tableCell_();
        sink.tableRow_();

        sink.tableRow();
        sink.tableHeaderCell();
        sink.text(getI18nString(locale, "stats.snapshots"));
        sink.tableHeaderCell_();
        sink.tableCell();
        sink.text(String.valueOf(snapshotCount));
        sink.tableCell_();
        sink.tableRow_();

        sink.tableRow();
        sink.tableHeaderCell();
        sink.text(getI18nString(locale, "stats.convergence"));
        sink.tableHeaderCell_();
        sink.tableCell();
        if (convergence < FULL_CONVERGENCE) {
            iconError(locale, sink);
        } else {
            iconSuccess(locale, sink);
        }
        sink.nonBreakingSpace();
        sink.bold();
        sink.text(String.valueOf(convergence) + " %");
        sink.bold_();
        sink.tableCell_();
        sink.tableRow_();

        sink.tableRow();
        sink.tableHeaderCell();
        sink.text(getI18nString(locale, "stats.readyrelease"));
        sink.tableHeaderCell_();
        sink.tableCell();
        if (convergence >= FULL_CONVERGENCE && snapshotCount <= 0) {
            iconSuccess(locale, sink);
            sink.nonBreakingSpace();
            sink.bold();
            sink.text(getI18nString(locale, "stats.readyrelease.success"));
            sink.bold_();
        } else {
            iconError(locale, sink);
            sink.nonBreakingSpace();
            sink.bold();
            sink.text(getI18nString(locale, "stats.readyrelease.error"));
            sink.bold_();
            if (convergence < FULL_CONVERGENCE) {
                sink.lineBreak();
                sink.text(getI18nString(locale, "stats.readyrelease.error.convergence"));
            }
            if (snapshotCount > 0) {
                sink.lineBreak();
                sink.text(getI18nString(locale, "stats.readyrelease.error.snapshots"));
            }
        }
        sink.tableCell_();
        sink.tableRow_();

        sink.tableRows_();
        sink.table_();
    }