private Collection filterConflicts()

in maven-plugin/src/main/java/com/spotify/missinglink/maven/CheckMojo.java [268:365]


  private Collection<Conflict> filterConflicts(
      Collection<Conflict> conflicts, Set<ConflictCategory> categoriesToInclude) {

    if (!categoriesToInclude.isEmpty()) {
      getLog()
          .debug(
              "Only including conflicts from categories: "
                  + Joiner.on(", ").join(categoriesToInclude));

      conflicts =
          filterConflictsBy(
              conflicts,
              c -> categoriesToInclude.contains(c.category()),
              num ->
                  num
                      + " conflicts removed based on includeCategories="
                      + Joiner.on(", ").join(includeCategories)
                      + ". "
                      + "Run plugin again without the 'includeCategories' parameter to see "
                      + "all conflicts that were found.");
    }

    if (!ignoreSourcePackages.isEmpty()) {
      getLog().debug("Ignoring source packages: " + Joiner.on(", ").join(ignoreSourcePackages));

      final Predicate<Conflict> predicate =
          conflict -> !packageIsFiltered(ignoreSourcePackages, conflict.dependency().fromClass());

      conflicts =
          filterConflictsBy(
              conflicts,
              predicate,
              num ->
                  num
                      + " conflicts found in ignored source packages. "
                      + "Run plugin again without the 'ignoreSourcePackages' parameter to see "
                      + "all conflicts that were found.");
    } else if (!targetSourcePackages.isEmpty()) {
      getLog()
          .debug(
              "Checking for conflicts in source packages: "
                  + Joiner.on(", ").join(targetSourcePackages));

      final Predicate<Conflict> predicate =
          conflict -> packageIsFiltered(targetSourcePackages, conflict.dependency().fromClass());

      conflicts =
          filterConflictsBy(
              conflicts,
              predicate,
              num ->
                  num
                      + " conflicts found in targeted source packages. "
                      + "Run plugin again without the 'targetSourcePackages' parameter to see "
                      + "all conflicts that were found.");
    }

    if (!ignoreDestinationPackages.isEmpty()) {
      getLog()
          .debug(
              "Ignoring destination packages: " + Joiner.on(", ").join(ignoreDestinationPackages));

      final Predicate<Conflict> predicate =
          conflict ->
              !packageIsFiltered(ignoreDestinationPackages, conflict.dependency().targetClass());

      conflicts =
          filterConflictsBy(
              conflicts,
              predicate,
              num ->
                  num
                      + " conflicts found in ignored destination packages. "
                      + "Run plugin again without the 'ignoreDestinationPackages' parameter to see "
                      + "all conflicts that were found.");
    } else if (!targetDestinationPackages.isEmpty()) {
      getLog()
          .debug(
              "Checking for conflicts in destination packages: "
                  + Joiner.on(", ").join(targetDestinationPackages));

      final Predicate<Conflict> predicate =
          conflict ->
              packageIsFiltered(targetDestinationPackages, conflict.dependency().targetClass());

      conflicts =
          filterConflictsBy(
              conflicts,
              predicate,
              num ->
                  num
                      + " conflicts found in allowed targeted packages. "
                      + "Run plugin again without the 'targetDestinationPackages' parameter to see "
                      + "all conflicts that were found.");
    }

    return conflicts;
  }