diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/metrics/MetricSet.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/metrics/MetricSet.java new file mode 100644 index 0000000000000000000000000000000000000000..1a8f95aefbe67310115dd417bb591fcacd2faf8a --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/metrics/MetricSet.java @@ -0,0 +1,40 @@ +package de.unikoblenz.fgbks.core.dmn.verification.metrics; + +import com.fasterxml.jackson.annotation.JsonProperty; +import de.unikoblenz.fgbks.core.dmn.verification.verifier.types.VerificationType; +import java.io.Serializable; +import java.util.HashSet; +import java.util.Set; +import org.apache.commons.lang3.Validate; + +/** + * A metric set contains all metrics. + */ +public class MetricSet implements Serializable { + + private Set<Metric> metrics = new HashSet<>(); + + /** + * Get all metrics. + * + * @return the set of {@link Metric}s + */ + @JsonProperty("verificationMetrics") + public Set<Metric> getMetrics() { + return new HashSet<>(metrics); + } + + /** + * Add a new execution time of a verifier to the metric map + * + * @param type the {@link VerificationType} + * @param timeInNs the time in ns + */ + public synchronized void addExecutionTime(VerificationType type, long timeInNs) { + Validate.notNull(type); + Metric m = + metrics.stream().filter(x -> x.type.equals(type)).findFirst().orElse(new Metric(type)); + m.addExecutionTime(timeInNs); + metrics.add(m); + } +}