From d42df683501bc91ae6995e131c3d0b6187982a87 Mon Sep 17 00:00:00 2001 From: Jonas Blatt <jonasblatt@uni-koblenz.de> Date: Wed, 9 Oct 2019 16:28:38 +0200 Subject: [PATCH] Add implementation of verification metrics for execution time --- .../dmn/verification/metrics/MetricSet.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/metrics/MetricSet.java 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 00000000..1a8f95ae --- /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); + } +} -- GitLab