private Report removeExcludedViolations()

in src/main/java/org/apache/maven/plugins/pmd/exec/PmdExecutor.java [409:432]


    private Report removeExcludedViolations(Report report) throws MavenReportException {
        if (report == null) {
            return null;
        }

        ExcludeViolationsFromFile excludeFromFile = new ExcludeViolationsFromFile();

        try {
            excludeFromFile.loadExcludeFromFailuresData(request.getExcludeFromFailureFile());
        } catch (MojoExecutionException e) {
            throw new MavenReportException("Unable to load exclusions", e);
        }

        LOG.debug("Removing excluded violations. Using {} configured exclusions.", excludeFromFile.countExclusions());
        int violationsBefore = report.getViolations().size();

        Report filtered =
                report.filterViolations(ruleViolation -> !excludeFromFile.isExcludedFromFailure(ruleViolation));

        int numberOfExcludedViolations =
                violationsBefore - filtered.getViolations().size();
        LOG.debug("Excluded {} violations.", numberOfExcludedViolations);
        return filtered;
    }