public void fillBaselineState()

in sarif/src/main/java/com/jetbrains/qodana/sarif/baseline/BaselineCalculation.java [48:76]


    public void fillBaselineState(SarifReport report, SarifReport baseline) {
        List<Run> baselineRunsField = baseline.getRuns();
        List<Run> baselineRuns = baselineRunsField != null ? new ArrayList<>(baselineRunsField) : Collections.emptyList();

        List<Run> unmatched = new ArrayList<>();

        for (Run run : report.getRuns()) {
            Optional<Run> first =
                    baselineRuns.stream().filter((it) -> Objects.equals(getToolName(it), getToolName(run))).findFirst();

            if (first.isPresent()) {
                Run baselineRun = first.get();
                applyBaseline(run, baselineRun);
                baselineRuns.remove(baselineRun);
            } else {
                unmatched.add(run);
            }
        }

        for (int i = 0; i < unmatched.size(); i++) {
            Run run = unmatched.get(i);
            Run baselineRun = i < baselineRuns.size() ? baselineRuns.get(i) : null;
            if (baselineRun == null) {
                markRunAsNew(run);
                continue;
            }
            applyBaseline(run, baselineRun);
        }
    }