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 317f1e733f0a056a8dd9578b83718b79381a2b1c..32e8965f6bf44c67dcd3ac2e848ef2f461e72f2d 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,7 +1,8 @@ package de.unikoblenz.fgbks.api.test; import de.unikoblenz.fgbks.core.dmn.utils.DmnService; -import de.unikoblenz.fgbks.core.dmn.verification.VerificationGenerator; +import de.unikoblenz.fgbks.core.dmn.verification.VerificationService; +import javax.inject.Inject; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; @@ -17,10 +18,12 @@ public class TestApi { private static Logger LOGGER = LoggerFactory.getLogger(TestApi.class.getSimpleName()); + @Inject private VerificationService verificationService; + @GET @Produces(MediaType.APPLICATION_JSON) public Response helloBuilder() { - return Response.accepted(VerificationGenerator.generate()).build(); + return Response.accepted(verificationService.generate()).build(); } @POST diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnColumn.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnColumn.java index 947786ec903ceb31fe7f8f6306e929403559a456..02d05dc0faf6cf5ab74f5f067c7068c1cbdf059b 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnColumn.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnColumn.java @@ -3,7 +3,7 @@ package de.unikoblenz.fgbks.core.dmn.domain.values; import de.unikoblenz.fgbks.core.dmn.domain.ids.ColumnId; import java.util.List; -public interface VDmnColumn { +public interface VDmnColumn extends VDmnElement { VDmnDecisionTable getDmnDecisionTable(); diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnDecision.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnDecision.java index 68171b080353579c024a38acd294070c0f298ce9..f908e84b0a1bee5f1929c959bd118742d49a0ae2 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnDecision.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnDecision.java @@ -3,7 +3,7 @@ package de.unikoblenz.fgbks.core.dmn.domain.values; import de.unikoblenz.fgbks.core.dmn.domain.ids.DecisionId; import java.util.List; -public interface VDmnDecision { +public interface VDmnDecision extends VDmnElement { DecisionId getDecisionId(); diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnDecisionTable.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnDecisionTable.java index 862d9ad046b6616d2239b5bb5066f4c27cc14315..8d4b577145ab7220101e8d7fa3713cd6b65cdfad 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnDecisionTable.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnDecisionTable.java @@ -3,7 +3,7 @@ package de.unikoblenz.fgbks.core.dmn.domain.values; import de.unikoblenz.fgbks.core.dmn.domain.ids.DecisionTableId; import java.util.List; -public interface VDmnDecisionTable { +public interface VDmnDecisionTable extends VDmnElement { VDmnDecision getDecision(); @@ -14,4 +14,6 @@ public interface VDmnDecisionTable { List<VDmnInputColumn> getInputColumns(); List<VDmnRule> getRules(); + + List<VDmnValue> getValues(); } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnElement.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnElement.java new file mode 100644 index 0000000000000000000000000000000000000000..a7376aa1775474e2fd0e04b51cf539f9b34a3445 --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnElement.java @@ -0,0 +1,3 @@ +package de.unikoblenz.fgbks.core.dmn.domain.values; + +public interface VDmnElement {} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnInputValue.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnInputValue.java index 18a66725d0d1ae95ab62d1dd73e722f97c958a40..53dbbad504b86d1bf3c1cbde0fc5b4a184de0667 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnInputValue.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnInputValue.java @@ -6,5 +6,7 @@ public interface VDmnInputValue extends VDmnValue { InputEntryId getInputEntryId(); - VDmnInputColumn getDmnInput(); + default VDmnInputColumn getDmnInputColumn() { + return (VDmnInputColumn) getDmnColumn(); + } } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnOutputValue.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnOutputValue.java index f951643b847ba2ef3ae5dad924383dcfb76b027d..609d654052e263c0ec216c4ed9b17b00db8daac9 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnOutputValue.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnOutputValue.java @@ -6,5 +6,7 @@ public interface VDmnOutputValue extends VDmnValue { OutputEntryId getOutputEntryId(); - VDmnOutputColumn getDmnOutput(); + default VDmnOutputColumn getDmnOutputColumn() { + return (VDmnOutputColumn) getDmnColumn(); + } } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnRule.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnRule.java index 3f84a431b8fb02d91eb3c4cb943d3d982c8e6599..0e6dbb0114237655169491ab0d848e3984a827c9 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnRule.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnRule.java @@ -4,7 +4,7 @@ import de.unikoblenz.fgbks.core.dmn.domain.common.RowNumber; import de.unikoblenz.fgbks.core.dmn.domain.ids.RuleId; import java.util.List; -public interface VDmnRule { +public interface VDmnRule extends VDmnElement { RowNumber getRowNumber(); diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnValue.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnValue.java index ff92718d254430133195bf379023895bde1a0f7a..2a28b5ac24f0583a0fb58246f871372f4cc3066b 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnValue.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/VDmnValue.java @@ -4,7 +4,7 @@ import de.unikoblenz.fgbks.core.dmn.domain.ids.DecisionId; import de.unikoblenz.fgbks.core.dmn.domain.ids.DecisionTableId; import de.unikoblenz.fgbks.core.dmn.domain.ids.RuleId; -public interface VDmnValue { +public interface VDmnValue extends VDmnElement { VDmnRule getDmnRule(); diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/DmnElementBuilder.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/DmnElementBuilder.java new file mode 100644 index 0000000000000000000000000000000000000000..1b3ce58d861efd09cc340908ba5d69697c971aed --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/DmnElementBuilder.java @@ -0,0 +1,5 @@ +package de.unikoblenz.fgbks.core.dmn.domain.values.impl; + +import de.unikoblenz.fgbks.base.builder.DefaultBuilder; + +public abstract class DmnElementBuilder<E> extends DefaultBuilder<E> {} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnDecisionImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnDecisionImpl.java index 2de8b3973a48d5f89a3f3ad943f9df685a14fa16..caf79d692509b849ec9c21037d97e695b8d17811 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnDecisionImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnDecisionImpl.java @@ -1,6 +1,5 @@ package de.unikoblenz.fgbks.core.dmn.domain.values.impl; -import de.unikoblenz.fgbks.base.builder.DefaultBuilder; import de.unikoblenz.fgbks.core.dmn.domain.ids.DecisionId; import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnDecision; import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnDecisionTable; @@ -32,7 +31,7 @@ public class VDmnDecisionImpl implements VDmnDecision { return new VDmnDecisionImpl().new Builder(); } - public class Builder extends DefaultBuilder<VDmnDecisionImpl> { + public class Builder extends DmnElementBuilder<VDmnDecisionImpl> { public Builder withDecisionId(DecisionId decisionId) { value.decisionId = decisionId; diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnDecisionTableImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnDecisionTableImpl.java index 27ed6ec6babdb1846d64d52c5817aeb927dfaf96..7c3ac9808c490f67843ea1708a3a3ec638e4d384 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnDecisionTableImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnDecisionTableImpl.java @@ -1,12 +1,12 @@ package de.unikoblenz.fgbks.core.dmn.domain.values.impl; -import de.unikoblenz.fgbks.base.builder.DefaultBuilder; import de.unikoblenz.fgbks.core.dmn.domain.ids.DecisionTableId; import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnDecision; import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnDecisionTable; import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnInputColumn; import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnOutputColumn; import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnRule; +import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnValue; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -19,11 +19,13 @@ public class VDmnDecisionTableImpl implements VDmnDecisionTable { private List<VDmnOutputColumn> dmnOutputColumns; private List<VDmnInputColumn> dmnInputColumns; private List<VDmnRule> dmnRules; + private List<VDmnValue> dmnValues; private VDmnDecisionTableImpl() { dmnOutputColumns = new ArrayList<>(); dmnInputColumns = new ArrayList<>(); dmnRules = new ArrayList<>(); + dmnValues = new ArrayList<>(); } @Override @@ -51,11 +53,22 @@ public class VDmnDecisionTableImpl implements VDmnDecisionTable { return Collections.unmodifiableList(dmnRules); } + @Override + public List<VDmnValue> getValues() { + return Collections.unmodifiableList(dmnValues); + } + public static Builder getBuilder() { return new VDmnDecisionTableImpl().new Builder(); } - public class Builder extends DefaultBuilder<VDmnDecisionTableImpl> { + public class Builder extends DmnElementBuilder<VDmnDecisionTableImpl> { + + private List<VDmnOutputColumnImpl.Builder> dmnOutputColumnsBuilders = new ArrayList<>(); + private List<VDmnInputColumnImpl.Builder> dmnInputColumnsBuilders = new ArrayList<>(); + private List<DmnElementBuilder> dmnRulesBuilders = new ArrayList<>(); + private List<DmnElementBuilder> dmnOutputValueBuilders = new ArrayList<>(); + private List<DmnElementBuilder> dmnInputValueBuilders = new ArrayList<>(); public Builder withDecisionTableId(DecisionTableId decisionTableId) { value.decisionTableId = decisionTableId; @@ -82,11 +95,23 @@ public class VDmnDecisionTableImpl implements VDmnDecisionTable { return this; } + public Builder addDmnValue(VDmnValue dmnValue) { + value.dmnValues.add(Validate.notNull(dmnValue)); + return this; + } + @Override protected void validate() { super.validate(); Validate.notNull(value.decisionTableId); Validate.notNull(value.dmnDecision); } + + @Override + public VDmnDecisionTableImpl build() { + dmnOutputColumnsBuilders.forEach(v -> addDmnOutputColumn(v.build())); + dmnInputColumnsBuilders.forEach(v -> addDmnInputColumn(v.build())); + return super.build(); + } } } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnInputColumnImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnInputColumnImpl.java index 64ffed58e287b9ed4c6479e5d77044ed677f9feb..722684c89b86f92bfbd19f79fe2e164db171e513 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnInputColumnImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnInputColumnImpl.java @@ -1,6 +1,5 @@ package de.unikoblenz.fgbks.core.dmn.domain.values.impl; -import de.unikoblenz.fgbks.base.builder.DefaultBuilder; import de.unikoblenz.fgbks.core.dmn.domain.ids.InputId; import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnDecisionTable; import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnInputColumn; @@ -18,7 +17,7 @@ public class VDmnInputColumnImpl extends VDmnColumnImpl implements VDmnInputColu return new VDmnInputColumnImpl().new Builder(); } - public class Builder extends DefaultBuilder<VDmnInputColumnImpl> { + public class Builder extends DmnElementBuilder<VDmnInputColumnImpl> { public Builder withInputId(InputId inputId) { value.columnId = inputId; diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnInputValueImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnInputValueImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..7cf82af83ab44235535be7772ba6515776e5d206 --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnInputValueImpl.java @@ -0,0 +1,60 @@ +package de.unikoblenz.fgbks.core.dmn.domain.values.impl; + +import de.unikoblenz.fgbks.core.dmn.domain.ids.InputEntryId; +import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnInputColumn; +import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnInputValue; +import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnRule; +import org.apache.commons.lang3.Validate; + +public class VDmnInputValueImpl extends VDmnValueImpl implements VDmnInputValue { + + private InputEntryId inputEntryId; + + @Override + public InputEntryId getInputEntryId() { + return inputEntryId; + } + + private VDmnInputValueImpl() {} + + public static Builder getBuilder() { + return new VDmnInputValueImpl().new Builder(); + } + + public class Builder extends DmnElementBuilder<VDmnInputValueImpl> { + + public Builder withDmnRule(VDmnRule dmnRule) { + value.dmnRule = dmnRule; + return this; + } + + public Builder withText(String text) { + value.text = text; + return this; + } + + public Builder withDescription(String description) { + value.description = description; + return this; + } + + public Builder withDmnInputColumn(VDmnInputColumn dmnColumn) { + value.dmnColumn = dmnColumn; + return this; + } + + public Builder withInputEntryId(InputEntryId inputEntryId) { + value.inputEntryId = inputEntryId; + return this; + } + + @Override + protected void validate() { + super.validate(); + Validate.notNull(value.dmnRule); + Validate.notNull(value.text); + Validate.notNull(value.dmnColumn); + Validate.notNull(value.inputEntryId); + } + } +} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnOutputColumnImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnOutputColumnImpl.java index a4c99d05a5c96a18962f5452f7c76b3454af02e5..7eb4777b93eda5191e98ae3515e938b9ed6dd3b5 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnOutputColumnImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnOutputColumnImpl.java @@ -1,6 +1,5 @@ package de.unikoblenz.fgbks.core.dmn.domain.values.impl; -import de.unikoblenz.fgbks.base.builder.DefaultBuilder; import de.unikoblenz.fgbks.core.dmn.domain.ids.InputId; import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnDecisionTable; import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnOutputColumn; @@ -18,7 +17,7 @@ public class VDmnOutputColumnImpl extends VDmnColumnImpl implements VDmnOutputCo return new VDmnOutputColumnImpl().new Builder(); } - public class Builder extends DefaultBuilder<VDmnOutputColumnImpl> { + public class Builder extends DmnElementBuilder<VDmnOutputColumnImpl> { public Builder withInputId(InputId inputId) { value.columnId = inputId; diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnOutputValueImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnOutputValueImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..7a58d9864cd0aa8f6708e4445288ec65bd522435 --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnOutputValueImpl.java @@ -0,0 +1,60 @@ +package de.unikoblenz.fgbks.core.dmn.domain.values.impl; + +import de.unikoblenz.fgbks.core.dmn.domain.ids.OutputEntryId; +import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnOutputColumn; +import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnOutputValue; +import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnRule; +import org.apache.commons.lang3.Validate; + +public class VDmnOutputValueImpl extends VDmnValueImpl implements VDmnOutputValue { + + private OutputEntryId outputEntryId; + + @Override + public OutputEntryId getOutputEntryId() { + return outputEntryId; + } + + private VDmnOutputValueImpl() {} + + public static Builder getBuilder() { + return new VDmnOutputValueImpl().new Builder(); + } + + public class Builder extends DmnElementBuilder<VDmnOutputValueImpl> { + + public Builder withDmnRule(VDmnRule dmnRule) { + value.dmnRule = dmnRule; + return this; + } + + public Builder withText(String text) { + value.text = text; + return this; + } + + public Builder withDescription(String description) { + value.description = description; + return this; + } + + public Builder withDmnOutputColumn(VDmnOutputColumn dmnColumn) { + value.dmnColumn = dmnColumn; + return this; + } + + public Builder withOutputEntryId(OutputEntryId outputEntryId) { + value.outputEntryId = outputEntryId; + return this; + } + + @Override + protected void validate() { + super.validate(); + Validate.notNull(value.dmnRule); + Validate.notNull(value.text); + Validate.notNull(value.dmnColumn); + Validate.notNull(value.outputEntryId); + } + } +} diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnRuleImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnRuleImpl.java index efaefce49ef119049dc4a88d97c4d7f6e27f0cfd..c1e48f05c1b70c98e06d9c38785b1edb747ae0a4 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnRuleImpl.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnRuleImpl.java @@ -1,6 +1,5 @@ package de.unikoblenz.fgbks.core.dmn.domain.values.impl; -import de.unikoblenz.fgbks.base.builder.DefaultBuilder; import de.unikoblenz.fgbks.core.dmn.domain.common.RowNumber; import de.unikoblenz.fgbks.core.dmn.domain.ids.RuleId; import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnInputValue; @@ -47,7 +46,7 @@ public class VDmnRuleImpl implements VDmnRule { return new VDmnRuleImpl().new Builder(); } - public class Builder extends DefaultBuilder<VDmnRuleImpl> { + public class Builder extends DmnElementBuilder<VDmnRuleImpl> { public Builder withRowNumber(RowNumber rowNumber) { value.rowNumber = rowNumber; @@ -59,12 +58,12 @@ public class VDmnRuleImpl implements VDmnRule { return this; } - public Builder addiInputValues(VDmnInputValue inputValue) { + public Builder addiInputValue(VDmnInputValue inputValue) { value.inputValues.add(Validate.notNull(inputValue)); return this; } - public Builder addiInputValues(VDmnOutputValue outputValue) { + public Builder addOutputValue(VDmnOutputValue outputValue) { value.outputValues.add(Validate.notNull(outputValue)); return this; } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnValueImpl.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnValueImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..c4f28eb7dfb96efb2e624f6de497c1d048f3503d --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/values/impl/VDmnValueImpl.java @@ -0,0 +1,33 @@ +package de.unikoblenz.fgbks.core.dmn.domain.values.impl; + +import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnColumn; +import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnRule; +import de.unikoblenz.fgbks.core.dmn.domain.values.VDmnValue; + +public abstract class VDmnValueImpl implements VDmnValue { + + protected VDmnRule dmnRule; + protected String text; + protected String description; + protected VDmnColumn dmnColumn; + + @Override + public VDmnRule getDmnRule() { + return dmnRule; + } + + @Override + public String getText() { + return text; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public VDmnColumn getDmnColumn() { + return dmnColumn; + } +} 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/VerificationService.java similarity index 76% rename from dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/VerificationGenerator.java rename to dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/VerificationService.java index 8bed941e3475a9132349a883f0e650d76bfcd3c6..92fe69693db719e25fd878f85e0f020bf667ddc1 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/VerificationGenerator.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/VerificationService.java @@ -16,39 +16,42 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; +import javax.inject.Singleton; import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.ConfigProvider; import org.reflections.Reflections; -public class VerificationGenerator { +@Singleton +public class VerificationService { private static final String CONF_VERIFIER_THREADS = "verifier.threads"; + private static final String CONF_PACKAGE_PATH = "verifier.package"; private static final Integer DEFAULT_MAX_THREADS = 1; private static final String DEFAULT_PACKAGE = "de.unikoblenz.fgbks.core.dmn.verification.verifier"; - public static VerifierResultSet generate() { - return generate(DEFAULT_PACKAGE, DEFAULT_MAX_THREADS); - } - - public static VerifierResultSet generate(String packagePath, Integer maxThreads) { + private ExecutorService executor; + private Set<Class<?>> verifierClasses; + protected VerificationService() { 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."); - + int maxThreads = + config.getOptionalValue(CONF_VERIFIER_THREADS, Integer.class).orElse(DEFAULT_MAX_THREADS); + executor = Executors.newFixedThreadPool(maxThreads); + System.out.println("Creating thread pool with " + maxThreads + " threads!"); + String packagePath = + config.getOptionalValue(CONF_PACKAGE_PATH, String.class).orElse(DEFAULT_PACKAGE); Reflections reflections = new Reflections(packagePath); - Set<Class<?>> verifierClasses = reflections.getTypesAnnotatedWith(DmnVerifier.class); + verifierClasses = reflections.getTypesAnnotatedWith(DmnVerifier.class); + } - // TODO: Load configuraion Propertiey dynamicl + public VerifierResultSet generate() { + System.out.println("xxx"); Map<Class<? extends AbstractDmnVerifierConfig>, AbstractDmnVerifierConfig> configs = getConfigs(); + Builder resultBuilder = VerifierResultSet.getBuilder(); + + List<Future<VerifierResult>> results = new ArrayList<>(10); for (Class<?> verifierClass : verifierClasses) { AbstractVerifier av = null; @@ -81,8 +84,7 @@ public class VerificationGenerator { return resultBuilder.build(); } - private static Map<Class<? extends AbstractDmnVerifierConfig>, AbstractDmnVerifierConfig> - getConfigs() { + private Map<Class<? extends AbstractDmnVerifierConfig>, AbstractDmnVerifierConfig> getConfigs() { Map<Class<? extends AbstractDmnVerifierConfig>, AbstractDmnVerifierConfig> map = new ConcurrentHashMap<>(); map.put( diff --git a/dmnverifierapi/src/main/resources/application.properties b/dmnverifierapi/src/main/resources/application.properties index d53a22529b77f21b2b97905533d8e5fe8a60bd23..93113c69cde2b6a419666caca4ed7ad72ec78e7b 100644 --- a/dmnverifierapi/src/main/resources/application.properties +++ b/dmnverifierapi/src/main/resources/application.properties @@ -11,3 +11,4 @@ quarkus.http.cors.methods=GET, OPTIONS # Amount of threads for calculating the verifications verifier.threads=8 %dev.verifier.threads=4 +verifier.package=de.unikoblenz.fgbks.core.dmn.verification.verifier