All Downloads are FREE. Search and download functionalities are using the official Maven repository.

iabudiab.maven.plugins.dependencytrack.suppressions.Suppressions Maven / Gradle / Ivy

There is a newer version: 2.4.2
Show newest version
package iabudiab.maven.plugins.dependencytrack.suppressions;

import java.util.ArrayList;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;
import iabudiab.maven.plugins.dependencytrack.client.model.Finding;
import lombok.Data;


@Data
public class Suppressions {
	private List suppressions;

	public static Suppressions none() {
		return new Suppressions(new ArrayList<>());
	}

	public Suppressions(@JsonProperty("suppressions") List suppressions) {
		this.suppressions = suppressions;
	}

	public boolean shouldSuppress(Finding finding) {
		return suppressions.stream()
			.filter(Suppression::isNotExpired)
			.anyMatch(suppression -> suppression.shouldSuppress(finding));
	}

	public Suppression hasSuppression(Finding finding) {
		for (Suppression suppression : suppressions) {
			if (suppression.isNotExpired() && suppression.shouldSuppress(finding)) {
				return suppression;
			}
		}
		return null;
	}

	public CharSequence printSummary() {
		StringBuilder builder = new StringBuilder();
		builder.append("--- Custom Suppressions ---");
		builder.append("\n");
		if (suppressions.isEmpty()) {
			builder.append("None");
		} else {
			for (Suppression suppression : suppressions) {
				builder.append(suppression.print());
				builder.append("\n");
			}
		}
		return builder.toString();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy