Skip to content
Snippets Groups Projects
Commit 9a5ce4a5 authored by Jonas Blatt's avatar Jonas Blatt :ant:
Browse files

Add execution time of verifier calculation to result object of verifier

parent 263a3ef7
No related branches found
No related tags found
No related merge requests found
...@@ -12,6 +12,7 @@ import org.apache.commons.lang3.Validate; ...@@ -12,6 +12,7 @@ import org.apache.commons.lang3.Validate;
public class VerifierResult extends AbstractResultObject { public class VerifierResult extends AbstractResultObject {
private VerificationType verificationType; private VerificationType verificationType;
private Long executionTime;
private Set<VerificationResultEntry> verificationResultEntries; private Set<VerificationResultEntry> verificationResultEntries;
public VerifierResult() { public VerifierResult() {
...@@ -33,6 +34,15 @@ public class VerifierResult extends AbstractResultObject { ...@@ -33,6 +34,15 @@ public class VerifierResult extends AbstractResultObject {
return verificationResultEntries.size(); return verificationResultEntries.size();
} }
@JsonbProperty("executionTime")
public Long getExecutionTime() {
return executionTime;
}
public void setExecutionTime(Long executionTime) {
this.executionTime = executionTime;
}
public static Builder getBuilder() { public static Builder getBuilder() {
return new VerifierResult().new Builder(); return new VerifierResult().new Builder();
} }
...@@ -49,6 +59,11 @@ public class VerifierResult extends AbstractResultObject { ...@@ -49,6 +59,11 @@ public class VerifierResult extends AbstractResultObject {
return this; return this;
} }
public Builder withExecutionTime(Long executionTime) {
value.executionTime = executionTime;
return this;
}
public Builder fromVerifier(AbstractVerifier verifier) { public Builder fromVerifier(AbstractVerifier verifier) {
return withVerificationType(Validate.notNull(verifier).getVerificationType()); return withVerificationType(Validate.notNull(verifier).getVerificationType());
} }
......
...@@ -26,6 +26,8 @@ public abstract class AbstractVerifier implements Verifier { ...@@ -26,6 +26,8 @@ public abstract class AbstractVerifier implements Verifier {
protected VerificationResultEntryFactory vreFactory; protected VerificationResultEntryFactory vreFactory;
protected DmnObjectContainer dmnObjectContainer; protected DmnObjectContainer dmnObjectContainer;
private long executionTime = -1;
public VerificationType getVerificationType() { public VerificationType getVerificationType() {
return verificationType; return verificationType;
} }
...@@ -65,18 +67,28 @@ public abstract class AbstractVerifier implements Verifier { ...@@ -65,18 +67,28 @@ public abstract class AbstractVerifier implements Verifier {
watch.start(); watch.start();
doVerification(); doVerification();
watch.stop(); watch.stop();
executionTime = watch.getTime();
LOGGER.info( LOGGER.info(
"Verification " "Verification "
+ getVerificationType().getName() + getVerificationType().getName()
+ " finished. " + " finished. "
+ "Time Elapsed: " + "Time Elapsed: "
+ watch.getTime() + executionTime
+ " ms"); + " ms");
return resultBuilder.build(); return resultBuilder.withExecutionTime(executionTime).build();
} }
protected abstract void doVerification(); protected abstract void doVerification();
@Override
public long getExecutionTime() {
if (executionTime == -1) {
throw new IllegalStateException(
"Verifier must be executed before accessing the execution time!");
}
return executionTime;
}
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) { if (this == o) {
......
...@@ -7,4 +7,6 @@ import java.util.concurrent.Future; ...@@ -7,4 +7,6 @@ import java.util.concurrent.Future;
public interface Verifier { public interface Verifier {
Future<VerifierResult> verify(ExecutorService executor); Future<VerifierResult> verify(ExecutorService executor);
long getExecutionTime();
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment