diff --git a/dmnverifierapi/pom.xml b/dmnverifierapi/pom.xml index 769aebc41deb5641e8deac9e30269048bc88d919..a484ccd6d77d4289dd18a10c5acdf6945544de6a 100644 --- a/dmnverifierapi/pom.xml +++ b/dmnverifierapi/pom.xml @@ -43,6 +43,12 @@ <artifactId>commons-lang3</artifactId> <version>3.7</version> </dependency> + + <dependency> + <groupId>org.reflections</groupId> + <artifactId>reflections</artifactId> + <version>0.9.11</version> + </dependency> </dependencies> <build> diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/api/test/GreetingResource.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/api/test/GreetingResource.java index 1a16a2bb69d418313a1648ea608fa74afc5d4ad7..543c2012ed73e64617777cda8663adcf4e059c1e 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/api/test/GreetingResource.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/api/test/GreetingResource.java @@ -1,6 +1,6 @@ package de.unikoblenz.fgbks.api.test; -import de.unikoblenz.fgbks.core.test.Name; +import de.unikoblenz.fgbks.core.dmn.domain.Name; import de.unikoblenz.fgbks.core.test.Person; import de.unikoblenz.fgbks.core.test.Synonyms; import javax.inject.Inject; diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/api/test/TestApi.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/api/test/TestApi.java index da063f0eda0b5b3a2b184e9a63e6b5be949ab3b1..046edef6008145717e686dd23f7d99d4031ab66e 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/api/test/TestApi.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/api/test/TestApi.java @@ -1,6 +1,6 @@ package de.unikoblenz.fgbks.api.test; -import de.unikoblenz.fgbks.core.dmn.verfication.VerificationGenerator; +import de.unikoblenz.fgbks.core.dmn.verification.VerificationGenerator; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/Description.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/Description.java new file mode 100644 index 0000000000000000000000000000000000000000..db6a82fede848f80c84303e7cb9e472183dcffdf --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/Description.java @@ -0,0 +1,19 @@ +package de.unikoblenz.fgbks.core.dmn.domain; + +import de.unikoblenz.fgbks.base.value.AbstractStringValueObject; + +public class Description extends AbstractStringValueObject { + + public Description(Description initialValue) { + this(initialValue.getValue()); + } + + public Description(String initialValue) { + super(initialValue); + } + + @Override + protected Integer getMaxLength() { + return 1000; + } +} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/Message.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/Message.java index b7ed52c9fc0085cc1682894b1a6cff98c4ada6a8..c61a0d2a72b92b098f59c97a50deb92cddd1afdb 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/Message.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/Message.java @@ -4,6 +4,10 @@ import de.unikoblenz.fgbks.base.value.AbstractStringValueObject; public class Message extends AbstractStringValueObject { + public Message(Message initialValue) { + this(initialValue.getValue()); + } + public Message(String initialValue) { super(initialValue); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/test/Name.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/Name.java similarity index 51% rename from dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/test/Name.java rename to dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/Name.java index c29555f102664f6cd920f036ed755d7aa5b50549..b862df3cabaea19c019d7ac07aeffa37f0dcd7f6 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/test/Name.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/Name.java @@ -1,11 +1,15 @@ -package de.unikoblenz.fgbks.core.test; +package de.unikoblenz.fgbks.core.dmn.domain; import de.unikoblenz.fgbks.base.value.AbstractStringValueObject; public class Name extends AbstractStringValueObject { - public Name(String name) { - super(name); + public Name(Name initialValue) { + this(initialValue.getValue()); + } + + public Name(String initialValue) { + super(initialValue); } @Override diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/AbstractId.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/AbstractId.java index e57aadf9ea84703e6441b91d3c383d19146ce7d1..7653de66af9d6c3c0dcbfadf44836605abaf16a3 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/AbstractId.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/AbstractId.java @@ -4,6 +4,10 @@ import de.unikoblenz.fgbks.base.value.AbstractStringValueObject; public abstract class AbstractId extends AbstractStringValueObject { + public AbstractId(AbstractId initialValue) { + this(initialValue.getValue()); + } + public AbstractId(String initialValue) { super(initialValue); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/DecisionId.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/DecisionId.java index 6a95016fab9e9331ad5d6331892fe58e1b5244f0..5bd6e82f6112e161ff0d5e0d39f68d6a595703a6 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/DecisionId.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/DecisionId.java @@ -2,6 +2,10 @@ package de.unikoblenz.fgbks.core.dmn.domain.id; public class DecisionId extends AbstractId { + public DecisionId(DecisionId initialValue) { + this(initialValue.getValue()); + } + public DecisionId(String initialValue) { super(initialValue); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/DecisionTableId.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/DecisionTableId.java index 87292a9374afa23c839fc73b0460c62bb26d7348..99260d606b864f410647f37d49c4c2f46f4444a4 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/DecisionTableId.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/DecisionTableId.java @@ -3,6 +3,10 @@ package de.unikoblenz.fgbks.core.dmn.domain.id; @JsonIdentifier("decisionTableId") public class DecisionTableId extends AbstractId { + public DecisionTableId(DecisionTableId initialValue) { + this(initialValue.getValue()); + } + public DecisionTableId(String initialValue) { super(initialValue); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/InputEntryId.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/InputEntryId.java index 9c1d594c07c4f2f34e2588a001aef3cbc76b2172..eaea5c1ae338fc3305b8a52fc40f8e1da77b078b 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/InputEntryId.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/InputEntryId.java @@ -3,6 +3,10 @@ package de.unikoblenz.fgbks.core.dmn.domain.id; @JsonIdentifier("inputEntryId") public class InputEntryId extends AbstractId { + public InputEntryId(InputEntryId initialValue) { + this(initialValue.getValue()); + } + public InputEntryId(String initialValue) { super(initialValue); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/InputExpressionId.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/InputExpressionId.java index b39666065143b330673240eb3c50e957ff97930d..a42b31e463fa75173209986cb1fb1ae0d69739d6 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/InputExpressionId.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/InputExpressionId.java @@ -3,6 +3,10 @@ package de.unikoblenz.fgbks.core.dmn.domain.id; @JsonIdentifier("inputExpressionId") public class InputExpressionId extends AbstractId { + public InputExpressionId(InputExpressionId initialValue) { + this(initialValue.getValue()); + } + public InputExpressionId(String initialValue) { super(initialValue); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/InputId.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/InputId.java index 91f6586817943019d626b527d8ba7de6fee0b1e0..15b248d4f56a2c644a869747cd059521d3dddb88 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/InputId.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/InputId.java @@ -3,6 +3,10 @@ package de.unikoblenz.fgbks.core.dmn.domain.id; @JsonIdentifier("inputId") public class InputId extends AbstractId { + public InputId(InputId initialValue) { + this(initialValue.getValue()); + } + public InputId(String initialValue) { super(initialValue); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/OutputEntryId.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/OutputEntryId.java index 853d5ce2f3e3d700587e9b61c71b6ecd2742a1c1..dc078793e1cf1c16dd33da54e13ccd0c1f6d7d0c 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/OutputEntryId.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/OutputEntryId.java @@ -3,6 +3,10 @@ package de.unikoblenz.fgbks.core.dmn.domain.id; @JsonIdentifier("outputEntryId") public class OutputEntryId extends AbstractId { + public OutputEntryId(OutputEntryId initialValue) { + this(initialValue.getValue()); + } + public OutputEntryId(String initialValue) { super(initialValue); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/OutputId.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/OutputId.java index 201b43b25cab989165bb191878a7b0ddcbcf6cd8..5a7da454f96cc5b8f609555251402b8c2ad6e9a9 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/OutputId.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/OutputId.java @@ -3,6 +3,10 @@ package de.unikoblenz.fgbks.core.dmn.domain.id; @JsonIdentifier("OutputId") public class OutputId extends AbstractId { + public OutputId(OutputId initialValue) { + super(initialValue.getValue()); + } + public OutputId(String initialValue) { super(initialValue); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/RuleId.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/RuleId.java index b38220e9788a8e9720d4879d1e4aa7d8bb349842..e95876ac1f0645e467fcfc259b48e1d48a95224a 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/RuleId.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/id/RuleId.java @@ -3,6 +3,10 @@ package de.unikoblenz.fgbks.core.dmn.domain.id; @JsonIdentifier("ruleId") public class RuleId extends AbstractId { + public RuleId(RuleId initialValue) { + this(initialValue.getValue()); + } + public RuleId(String initialValue) { super(initialValue); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/VerificationGenerator.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/VerificationGenerator.java deleted file mode 100644 index e85edb31f27bed93eba1a476a092ad4460ed0d27..0000000000000000000000000000000000000000 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/VerificationGenerator.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.unikoblenz.fgbks.core.dmn.verfication; - -import de.unikoblenz.fgbks.core.dmn.verfication.result.VerifierResult; -import de.unikoblenz.fgbks.core.dmn.verfication.result.VerifierResultSet; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; -import org.eclipse.microprofile.config.Config; -import org.eclipse.microprofile.config.ConfigProvider; - -public class VerificationGenerator { - - public static final String CONF_VERIFIER_THREADS = "verifier.threads"; - - public static VerifierResultSet generate() { - - Config config = ConfigProvider.getConfig(); - Integer maxThreads = config.getOptionalValue(CONF_VERIFIER_THREADS, Integer.class).orElse(1); - - ExecutorService executor = Executors.newFixedThreadPool(maxThreads); - - VerifierResultSet.Builder resultBuilder = VerifierResultSet.getBuilder(); - - List<Future<VerifierResult>> results = new ArrayList<>(VerificationType.values().length); - System.out.println("Starting calculation with " + maxThreads + " threads."); - for (VerificationType vType : VerificationType.values()) { - results.add(vType.createNewInstance().verify(executor)); - } - - results.forEach( - r -> { - try { - resultBuilder.addVerifierResult(r.get()); - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } - }); - - return resultBuilder.build(); - } -} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/VerificationType.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/VerificationType.java deleted file mode 100644 index f65aa5bdd5266bc37ac41df4abe2145adfd70693..0000000000000000000000000000000000000000 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/VerificationType.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.unikoblenz.fgbks.core.dmn.verfication; - -import static de.unikoblenz.fgbks.core.dmn.verfication.VerificationTypeClassification.DECISION_LOGIC_LEVEL_VERIFICATION; - -import de.unikoblenz.fgbks.core.dmn.verfication.verifier.AbstractVerifier; -import de.unikoblenz.fgbks.core.dmn.verfication.verifier.SampleVerifier; -import java.io.Serializable; -import javax.json.bind.annotation.JsonbProperty; -import org.apache.commons.lang3.Validate; - -public enum VerificationType implements Serializable { - IDENTICAL_BUSINESS_RULE_VERIFICATION( - DECISION_LOGIC_LEVEL_VERIFICATION, "Identical Business Rules"); - - private VerificationTypeClassification classification; - private String name; - private String description; - private Class<? extends AbstractVerifier> verifierClass; - - @JsonbProperty("classification") - public VerificationTypeClassification getClassification() { - return classification; - } - - public String getName() { - return name; - } - - public String getDescription() { - return description; - } - - public AbstractVerifier createNewInstance() { - return new SampleVerifier(); - } - - VerificationType(VerificationTypeClassification classification, String name) { - this.classification = Validate.notNull(classification); - this.name = Validate.notBlank(name); - } -} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/VerificationTypeClassification.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/VerificationTypeClassification.java deleted file mode 100644 index 7eaf523f4720dbcd6977e779a6e692491c39f5dc..0000000000000000000000000000000000000000 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/VerificationTypeClassification.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.unikoblenz.fgbks.core.dmn.verfication; - -import java.io.Serializable; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -public enum VerificationTypeClassification implements Serializable { - DECISION_LOGIC_LEVEL_VERIFICATION( - "Decision Logic Verification", - "", - new HashSet<>(Arrays.asList(VerificationType.IDENTICAL_BUSINESS_RULE_VERIFICATION))); - - private String name; - private String description; - private Set<VerificationType> verificationTypes; - - public String getName() { - return name; - } - - public String getDescription() { - return description; - } - - public Set<VerificationType> getVerificationTypes() { - return new HashSet<>(verificationTypes); - } - - VerificationTypeClassification( - String name, String description, Set<VerificationType> verificationTypes) { - this.name = name; - this.description = description; - this.verificationTypes = verificationTypes; - } -} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/VerificationGenerator.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/VerificationGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..0d1a66f8418281e202585c1ad8ed7f634827a0f2 --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/VerificationGenerator.java @@ -0,0 +1,80 @@ +package de.unikoblenz.fgbks.core.dmn.verification; + +import de.unikoblenz.fgbks.core.dmn.verification.result.VerifierResult; +import de.unikoblenz.fgbks.core.dmn.verification.result.VerifierResultSet; +import de.unikoblenz.fgbks.core.dmn.verification.result.VerifierResultSet.Builder; +import de.unikoblenz.fgbks.core.dmn.verification.verifier.AbstractVerifier; +import de.unikoblenz.fgbks.core.dmn.verification.verifier.DmnVerifier; +import de.unikoblenz.fgbks.core.dmn.verification.verifier.config.AbstractVerificationConfig; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import org.eclipse.microprofile.config.Config; +import org.eclipse.microprofile.config.ConfigProvider; +import org.reflections.Reflections; + +public class VerificationGenerator { + + public static final String CONF_VERIFIER_THREADS = "verifier.threads"; + public static final String DEFAULT_PACKAGE = "de.unikoblenz.fgbks.core.dmn.verification.verifier"; + public static final Integer DEFAULT_MAX_THREADS = 1; + + public static VerifierResultSet generate() { + return generate(DEFAULT_PACKAGE, DEFAULT_MAX_THREADS); + } + + public static VerifierResultSet generate(String packagePath, Integer maxThreads) { + + Config config = ConfigProvider.getConfig(); + maxThreads = config.getOptionalValue(CONF_VERIFIER_THREADS, Integer.class).orElse(maxThreads); + + ExecutorService executor = Executors.newFixedThreadPool(maxThreads); + + Builder resultBuilder = VerifierResultSet.getBuilder(); + + List<Future<VerifierResult>> results = new ArrayList<>(10); + System.out.println("Starting calculation with " + maxThreads + " threads."); + + Reflections reflections = new Reflections(packagePath); + Set<Class<?>> verifierClasses = reflections.getTypesAnnotatedWith(DmnVerifier.class); + + for (Class<?> verifierClass : verifierClasses) { + AbstractVerifier av = null; + try { + av = (AbstractVerifier) verifierClass.newInstance(); + } catch (InstantiationException | IllegalAccessException e) { + e.printStackTrace(); + } + if (av != null) { + // Create Configuration + AbstractVerificationConfig vConfig = null; + try { + vConfig = + av.getClass() + .getAnnotation(DmnVerifier.class) + .verifierVerificationConfigClass() + .newInstance(); + } catch (InstantiationException | IllegalAccessException ignored) { + } + results.add(av.withConfiguration(vConfig).verify(executor)); + } + } + + results.forEach( + r -> { + try { + resultBuilder.addVerifierResult(r.get()); + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } + }); + + return resultBuilder.build(); + } +} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/AbstractResultObject.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/AbstractResultObject.java similarity index 92% rename from dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/AbstractResultObject.java rename to dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/AbstractResultObject.java index 755889a6fa135426cfdb0e0b366fa4aec24a04c3..9a1955613a5a2dd0c054d57c7e5d4c2662aeaad1 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/AbstractResultObject.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/AbstractResultObject.java @@ -1,4 +1,4 @@ -package de.unikoblenz.fgbks.core.dmn.verfication.result; +package de.unikoblenz.fgbks.core.dmn.verification.result; import de.unikoblenz.fgbks.base.utils.UniqueIdGenerator; import java.io.Serializable; diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerificationResultEntry.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerificationResultEntry.java similarity index 93% rename from dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerificationResultEntry.java rename to dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerificationResultEntry.java index 029dd51e77d943c7cd167e60e97073899d22795f..6662f4d34aa4dbbb3e91152cce2e19b4215f78f2 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerificationResultEntry.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerificationResultEntry.java @@ -1,4 +1,4 @@ -package de.unikoblenz.fgbks.core.dmn.verfication.result; +package de.unikoblenz.fgbks.core.dmn.verification.result; import de.unikoblenz.fgbks.base.builder.DefaultBuilder; import de.unikoblenz.fgbks.core.dmn.domain.Message; @@ -42,7 +42,7 @@ public class VerificationResultEntry extends AbstractResultObject { @JsonbProperty("message") public Message getMessage() { - return new Message(message.getValue()); + return new Message(message); } private void addVerificationResultEntry( @@ -63,7 +63,7 @@ public class VerificationResultEntry extends AbstractResultObject { } public Builder withMessage(Message message) { - value.message = new Message(message.getValue()); + value.message = new Message(message); return this; } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerificationResultEntryElement.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerificationResultEntryElement.java similarity index 93% rename from dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerificationResultEntryElement.java rename to dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerificationResultEntryElement.java index 032ce6df64a51f1ec523b8c611c65cdd0b1669dc..f55b115c76a0e6e45e70dc01120596b80ce03565 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerificationResultEntryElement.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerificationResultEntryElement.java @@ -1,4 +1,4 @@ -package de.unikoblenz.fgbks.core.dmn.verfication.result; +package de.unikoblenz.fgbks.core.dmn.verification.result; import de.unikoblenz.fgbks.core.dmn.domain.id.AbstractId; import de.unikoblenz.fgbks.core.dmn.domain.id.JsonIdentifier; @@ -13,7 +13,7 @@ public class VerificationResultEntryElement extends AbstractResultObject { private final Map<String, AbstractId> identifier; @JsonbProperty("identifier") - public Map<String, Object> getIdentifier() { + public Map<String, AbstractId> getIdentifier() { return new HashMap<>(identifier); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerificationResultEntryFactory.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerificationResultEntryFactory.java similarity index 86% rename from dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerificationResultEntryFactory.java rename to dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerificationResultEntryFactory.java index bc651b989e577f9ae940d62f2f89cb467a763961..5bba3ac68c89fd3a34fb7a0733727f51c847a7b0 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerificationResultEntryFactory.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerificationResultEntryFactory.java @@ -1,8 +1,8 @@ -package de.unikoblenz.fgbks.core.dmn.verfication.result; +package de.unikoblenz.fgbks.core.dmn.verification.result; import de.unikoblenz.fgbks.core.dmn.domain.Message; -import de.unikoblenz.fgbks.core.dmn.verfication.result.VerificationResultEntry.VerificationClassification; -import de.unikoblenz.fgbks.core.dmn.verfication.result.VerifierResult.Builder; +import de.unikoblenz.fgbks.core.dmn.verification.result.VerificationResultEntry.VerificationClassification; +import de.unikoblenz.fgbks.core.dmn.verification.result.VerifierResult.Builder; import org.apache.commons.lang3.Validate; public class VerificationResultEntryFactory { @@ -46,7 +46,7 @@ public class VerificationResultEntryFactory { verificationResultEntryBuilder, "First call \"addElement\" in VerificationResultEntryFactory before calling \"addToEntry\""); verificationResultEntryBuilder.withClassification(verificationClassification); - verificationResultEntryBuilder.withMessage(message); + verificationResultEntryBuilder.withMessage(new Message(message)); verifierResultBuilder.addVerificationResultEntry(verificationResultEntryBuilder.build()); verificationResultEntryBuilder = null; } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerifierResult.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerifierResult.java similarity index 73% rename from dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerifierResult.java rename to dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerifierResult.java index 61fc946dd4d5127066390f65e95f36db3f9717f0..14c336d258babfe515d1814b0850d35526cbd15e 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerifierResult.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerifierResult.java @@ -1,8 +1,8 @@ -package de.unikoblenz.fgbks.core.dmn.verfication.result; +package de.unikoblenz.fgbks.core.dmn.verification.result; import de.unikoblenz.fgbks.base.builder.DefaultBuilder; -import de.unikoblenz.fgbks.core.dmn.verfication.VerificationType; -import de.unikoblenz.fgbks.core.dmn.verfication.verifier.AbstractVerifier; +import de.unikoblenz.fgbks.core.dmn.verification.verifier.AbstractVerifier; +import de.unikoblenz.fgbks.core.dmn.verification.verifier.types.VerificationType; import java.util.HashSet; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -23,21 +23,6 @@ public class VerifierResult extends AbstractResultObject { return verificationType; } - @JsonbProperty("type_name") - public String getVerificationTypeName() { - return verificationType.getName(); - } - - @JsonbProperty("type_description") - public String getVerificationTypeDescription() { - return verificationType.getDescription(); - } - - @JsonbProperty("type_classification") - public String getVerificationTypeClassification() { - return verificationType.getClassification().getName(); - } - @JsonbProperty("entries") public Set<VerificationResultEntry> getVerificationResultEntries() { return new HashSet<>(verificationResultEntries); diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerifierResultSet.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerifierResultSet.java similarity index 95% rename from dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerifierResultSet.java rename to dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerifierResultSet.java index 7d949525de30df3b66684a06ae043b982d3e4e30..52ccf5d589501af118e3c5f70bf072245551f31a 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/result/VerifierResultSet.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerifierResultSet.java @@ -1,4 +1,4 @@ -package de.unikoblenz.fgbks.core.dmn.verfication.result; +package de.unikoblenz.fgbks.core.dmn.verification.result; import de.unikoblenz.fgbks.base.builder.DefaultBuilder; import java.util.HashSet; diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/verifier/AbstractVerifier.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/AbstractVerifier.java similarity index 52% rename from dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/verifier/AbstractVerifier.java rename to dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/AbstractVerifier.java index f88b1d2e817335bb6a839ff24c11e0246ce151db..365401bb674d63105580e5b55e6523ac34fdb510 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/verifier/AbstractVerifier.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/AbstractVerifier.java @@ -1,16 +1,19 @@ -package de.unikoblenz.fgbks.core.dmn.verfication.verifier; +package de.unikoblenz.fgbks.core.dmn.verification.verifier; -import de.unikoblenz.fgbks.core.dmn.verfication.VerificationType; -import de.unikoblenz.fgbks.core.dmn.verfication.result.VerificationResultEntryFactory; -import de.unikoblenz.fgbks.core.dmn.verfication.result.VerifierResult; +import de.unikoblenz.fgbks.core.dmn.verification.result.VerificationResultEntryFactory; +import de.unikoblenz.fgbks.core.dmn.verification.result.VerifierResult; +import de.unikoblenz.fgbks.core.dmn.verification.verifier.config.AbstractVerificationConfig; +import de.unikoblenz.fgbks.core.dmn.verification.verifier.types.VerificationType; import java.util.Objects; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; +import org.apache.commons.lang3.Validate; public abstract class AbstractVerifier implements Verifier { protected VerificationType verificationType; + protected AbstractVerificationConfig verificationConfig; private VerifierResult.Builder resultBuilder; protected VerificationResultEntryFactory vref; @@ -18,17 +21,29 @@ public abstract class AbstractVerifier implements Verifier { return verificationType; } - public AbstractVerifier(VerificationType verificationType) { - this.verificationType = verificationType; + public final AbstractVerifier withConfiguration(AbstractVerificationConfig configuration) { + this.verificationConfig = Validate.notNull(configuration); + return this; + } + + protected AbstractVerifier() { + try { + this.verificationType = + this.getClass().getAnnotation(DmnVerifier.class).verifierTypeClass().newInstance(); + } catch (InstantiationException | IllegalAccessException e) { + e.printStackTrace(); + } resultBuilder = VerifierResult.getBuilder().fromVerifier(this); vref = VerificationResultEntryFactory.create(resultBuilder); } public final Future<VerifierResult> verify(ExecutorService executor) { + Validate.notNull(verificationConfig, "Validation config has to been set."); + Validate.notNull(executor); return executor.submit((Callable<VerifierResult>) this::verify); } - public final VerifierResult verify() { + private VerifierResult verify() { doVerification(); return resultBuilder.build(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/DmnVerifier.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/DmnVerifier.java new file mode 100644 index 0000000000000000000000000000000000000000..a0a901fde8d65886cb986f79315c77cd1f6092cc --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/DmnVerifier.java @@ -0,0 +1,19 @@ +package de.unikoblenz.fgbks.core.dmn.verification.verifier; + +import de.unikoblenz.fgbks.core.dmn.verification.verifier.config.AbstractVerificationConfig; +import de.unikoblenz.fgbks.core.dmn.verification.verifier.config.DefaultConfiguration; +import de.unikoblenz.fgbks.core.dmn.verification.verifier.types.VerificationType; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface DmnVerifier { + + Class<? extends VerificationType> verifierTypeClass(); + + Class<? extends AbstractVerificationConfig> verifierVerificationConfigClass() default + DefaultConfiguration.class; +} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/verifier/SampleVerifier.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/SampleVerifier.java similarity index 58% rename from dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/verifier/SampleVerifier.java rename to dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/SampleVerifier.java index 0edc2e936d8b563368d0435d8b1e625f2275f9ea..c6104e2d4a429a8ecf3a62f6b1238446e0ae8fc0 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/verifier/SampleVerifier.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/SampleVerifier.java @@ -1,19 +1,19 @@ -package de.unikoblenz.fgbks.core.dmn.verfication.verifier; +package de.unikoblenz.fgbks.core.dmn.verification.verifier; -import static de.unikoblenz.fgbks.core.dmn.verfication.VerificationType.IDENTICAL_BUSINESS_RULE_VERIFICATION; -import static de.unikoblenz.fgbks.core.dmn.verfication.result.VerificationResultEntry.VerificationClassification.*; +import static de.unikoblenz.fgbks.core.dmn.verification.result.VerificationResultEntry.VerificationClassification.*; import de.unikoblenz.fgbks.core.dmn.domain.id.InputEntryId; import de.unikoblenz.fgbks.core.dmn.domain.id.OutputEntryId; import de.unikoblenz.fgbks.core.dmn.domain.id.RuleId; -import de.unikoblenz.fgbks.core.dmn.verfication.result.VerificationResultEntryElement; +import de.unikoblenz.fgbks.core.dmn.verification.result.VerificationResultEntryElement; +import de.unikoblenz.fgbks.core.dmn.verification.verifier.config.DefaultConfiguration; +import de.unikoblenz.fgbks.core.dmn.verification.verifier.types.IdenticalBusinessRuleVerification; +@DmnVerifier( + verifierTypeClass = IdenticalBusinessRuleVerification.class, + verifierVerificationConfigClass = DefaultConfiguration.class) public class SampleVerifier extends AbstractVerifier { - public SampleVerifier() { - super(IDENTICAL_BUSINESS_RULE_VERIFICATION); - } - @Override protected void doVerification() { vref.addElement( @@ -28,7 +28,7 @@ public class SampleVerifier extends AbstractVerifier { .withIdentifier(new RuleId("asdasd"))); vref.addToEntry(ERROR, "My sample message"); try { - Thread.sleep(1500); + Thread.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/verifier/Verifier.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/Verifier.java similarity index 56% rename from dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/verifier/Verifier.java rename to dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/Verifier.java index dbc438c8bf9937a9b5bf759fe5752e611eec5560..695ab043fa08cbcd3c16e6fe6736b2f6256d4268 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verfication/verifier/Verifier.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/Verifier.java @@ -1,6 +1,6 @@ -package de.unikoblenz.fgbks.core.dmn.verfication.verifier; +package de.unikoblenz.fgbks.core.dmn.verification.verifier; -import de.unikoblenz.fgbks.core.dmn.verfication.result.VerifierResult; +import de.unikoblenz.fgbks.core.dmn.verification.result.VerifierResult; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/AbstractVerificationConfig.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/AbstractVerificationConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..eb1eb0c8b0330436119a97d1a2bc3fe157870ce9 --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/AbstractVerificationConfig.java @@ -0,0 +1,22 @@ +package de.unikoblenz.fgbks.core.dmn.verification.verifier.config; + +import java.util.HashMap; +import org.apache.commons.lang3.Validate; + +public abstract class AbstractVerificationConfig { + + private HashMap<String, Object> configurationProperties; + + public Object getConfiguration(String key) { + return configurationProperties.get(key); + } + + protected AbstractVerificationConfig withConfigurationProperty(String key, Object value) { + configurationProperties.put(Validate.notNull(key), Validate.notNull(value)); + return this; + } + + protected AbstractVerificationConfig() { + configurationProperties = new HashMap<>(); + } +} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/DefaultConfiguration.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/DefaultConfiguration.java new file mode 100644 index 0000000000000000000000000000000000000000..6468f862edb6e1cf28cf16807a8c64339c6ffafd --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/DefaultConfiguration.java @@ -0,0 +1,24 @@ +package de.unikoblenz.fgbks.core.dmn.verification.verifier.config; + +import de.unikoblenz.fgbks.base.builder.DefaultBuilder; + +public class DefaultConfiguration extends AbstractVerificationConfig { + + public static final String DMN_DECISION_TABLE = "DmnDecisionTable"; + + public DefaultConfiguration() { + super(); + } + + public static Builder getBuilder() { + return new DefaultConfiguration().new Builder(); + } + + public class Builder extends DefaultBuilder<DefaultConfiguration> { + + public Builder withDmnDecisionTable(String x) { + value.withConfigurationProperty(DMN_DECISION_TABLE, x); + return this; + } + } +} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/DmnVerifierConfigProperty.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/DmnVerifierConfigProperty.java new file mode 100644 index 0000000000000000000000000000000000000000..f3f711cffe9aad75b293c0588355f7f8008c05e4 --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/config/DmnVerifierConfigProperty.java @@ -0,0 +1,6 @@ +package de.unikoblenz.fgbks.core.dmn.verification.verifier.config; + +public @interface DmnVerifierConfigProperty { + + String key(); +} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/AbstractVerificationType.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/AbstractVerificationType.java new file mode 100644 index 0000000000000000000000000000000000000000..6b57fae4baf95d0cd20382edfa587534a42257c3 --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/AbstractVerificationType.java @@ -0,0 +1,3 @@ +package de.unikoblenz.fgbks.core.dmn.verification.verifier.types; + +public abstract class AbstractVerificationType implements VerificationType {} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/IdenticalBusinessRuleVerification.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/IdenticalBusinessRuleVerification.java new file mode 100644 index 0000000000000000000000000000000000000000..d51273ecc3a05e1c030ce51a4fe9e657f5db654b --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/IdenticalBusinessRuleVerification.java @@ -0,0 +1,24 @@ +package de.unikoblenz.fgbks.core.dmn.verification.verifier.types; + +import static de.unikoblenz.fgbks.core.dmn.verification.verifier.types.VerificationTypeClassification.*; + +import de.unikoblenz.fgbks.core.dmn.domain.Description; +import de.unikoblenz.fgbks.core.dmn.domain.Name; + +public class IdenticalBusinessRuleVerification extends AbstractVerificationType { + + @Override + public VerificationTypeClassification getClassification() { + return DECISION_LOGIC_LEVEL_VERIFICATION; + } + + @Override + public Name getName() { + return new Name(this.getClass().getSimpleName()); + } + + @Override + public Description getDescription() { + return new Description("test"); + } +} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/VerificationType.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/VerificationType.java new file mode 100644 index 0000000000000000000000000000000000000000..bfe0101062a6b3e9d9d1971608521915ba7a7c3b --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/VerificationType.java @@ -0,0 +1,22 @@ +package de.unikoblenz.fgbks.core.dmn.verification.verifier.types; + +import de.unikoblenz.fgbks.base.value.ValueObject; +import de.unikoblenz.fgbks.core.dmn.domain.Description; +import de.unikoblenz.fgbks.core.dmn.domain.Name; +import javax.json.bind.annotation.JsonbProperty; +import javax.validation.constraints.NotNull; + +public interface VerificationType extends ValueObject { + + @NotNull + @JsonbProperty("classification") + VerificationTypeClassification getClassification(); + + @NotNull + @JsonbProperty("name") + Name getName(); + + @NotNull + @JsonbProperty("description") + Description getDescription(); +} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/VerificationTypeClassification.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/VerificationTypeClassification.java new file mode 100644 index 0000000000000000000000000000000000000000..e6b1a0035d339619ebabebc63d60849ef5cefa36 --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/VerificationTypeClassification.java @@ -0,0 +1,25 @@ +package de.unikoblenz.fgbks.core.dmn.verification.verifier.types; + +import de.unikoblenz.fgbks.base.value.ValueObject; +import de.unikoblenz.fgbks.core.dmn.domain.Description; +import de.unikoblenz.fgbks.core.dmn.domain.Name; + +public enum VerificationTypeClassification implements ValueObject { + DECISION_LOGIC_LEVEL_VERIFICATION("Decision Logic Verification", "description of classification"); + + private Name name; + private Description description; + + public Name getName() { + return name; + } + + public Description getDescription() { + return description; + } + + VerificationTypeClassification(String name, String description) { + this.name = new Name(name); + this.description = new Description(description); + } +} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/test/Person.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/test/Person.java index 2da218fdf5a357a96bb950cc205cb6f424445068..140a92d5ed1db079696c06234285b7f4c61fd061 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/test/Person.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/test/Person.java @@ -1,5 +1,6 @@ package de.unikoblenz.fgbks.core.test; +import de.unikoblenz.fgbks.core.dmn.domain.Name; import java.io.Serializable; import java.util.Objects;