fun printResultsWithBaselineState()

in baseline-cli/src/main/kotlin/CommandLineResultsPrinter.kt [8:45]


    fun printResultsWithBaselineState(results: List<Result>, includeAbsent: Boolean) {
        val resultsCountByBaselineState = results.groupingBy { it.baselineState }.eachCount()

        val unchanged = resultsCountByBaselineState[Result.BaselineState.UNCHANGED] ?: 0
        val new = resultsCountByBaselineState[Result.BaselineState.NEW] ?: 0
        val absent = resultsCountByBaselineState[Result.BaselineState.ABSENT] ?: 0
        val absentLine = if (includeAbsent) ", ABSENT: $absent" else ""
        val groupingMessage =
            "Grouping problems according to baseline: UNCHANGED: $unchanged, NEW: $new$absentLine"

        val countedProblems = (
                results
                    .takeIf { !includeAbsent }?.filter { it.baselineState != Result.BaselineState.ABSENT }
                    ?: results)
            .groupingBy {
                Triple(
                    inspectionIdToName.invoke(it.ruleId),
                    it.baselineState,
                    it.level
                )
            }.eachCount()

        printProblemsCountTable(
            "Qodana - Baseline summary",
            groupingMessage,
            listOf(
                "Name",
                "Baseline",
                "Severity"
            ),
            listOf(50, 0, 0),
            countedProblems,
            compareByDescending<Map.Entry<Triple<String, Result.BaselineState, Level>, Int>> { it.key.second.order }
                .thenByDescending { it.key.third }.thenByDescending { it.value }.thenBy { it.key.first }
        ) {
            listOf(it.first, it.second.value().uppercase(), it.third.toString())
        }
    }