diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerificationResultEntry.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerificationResultEntry.java index 70322b5d2aeec63a0f8cc3b54bdef188f8a55938..4c276703f55b7f22bf8a4e688302191c8dd58260 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerificationResultEntry.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/VerificationResultEntry.java @@ -2,7 +2,11 @@ package de.unikoblenz.fgbks.core.dmn.verification.result; import de.unikoblenz.fgbks.base.builder.DefaultBuilder; import de.unikoblenz.fgbks.base.domain.Message; +import de.unikoblenz.fgbks.core.dmn.verification.result.actions.VerificationFix; +import java.util.ArrayList; +import java.util.Collections; import java.util.HashSet; +import java.util.List; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import javax.json.bind.annotation.JsonbProperty; @@ -10,19 +14,19 @@ import org.apache.commons.lang3.Validate; public class VerificationResultEntry extends AbstractResultObject { - public enum VerificationClassification { - INFO, - WARNING, - ERROR, - FATAL_ERROR; - } + private List<VerificationFix> verificationFixes; private Set<VerificationResultEntryElement> verificationResultEntryElements; private Message message; private VerificationClassification verificationClassification; - protected VerificationResultEntry() { - this.verificationResultEntryElements = ConcurrentHashMap.newKeySet(); + verificationResultEntryElements = ConcurrentHashMap.newKeySet(); + verificationFixes = new ArrayList<>(); + } + + @JsonbProperty("verificationFixes") + public List<VerificationFix> getVerificationsFixes() { + return Collections.unmodifiableList(verificationFixes); } @JsonbProperty("size") @@ -45,6 +49,13 @@ public class VerificationResultEntry extends AbstractResultObject { return new Message(message); } + public enum VerificationClassification { + INFO, + WARNING, + ERROR, + FATAL_ERROR + } + private void addVerificationResultEntry( VerificationResultEntryElement verificationResultEntryElement) { this.verificationResultEntryElements.add(verificationResultEntryElement); @@ -72,6 +83,11 @@ public class VerificationResultEntry extends AbstractResultObject { return this; } + public Builder addAction(VerificationFix verificationFix) { + value.verificationFixes.add(Validate.notNull(verificationFix)); + return this; + } + @Override protected void validate() { super.validate(); diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/Action.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/Action.java index fb7fe2cc72743418099b6440b52ed581adda2af7..ff11126c47f45cf7eca6aa36f58522b82b717a1c 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/Action.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/Action.java @@ -1,7 +1,11 @@ package de.unikoblenz.fgbks.core.dmn.verification.result.actions; +import static de.unikoblenz.fgbks.core.dmn.verification.result.actions.ActionScope.INPUT_ENTRY; +import static de.unikoblenz.fgbks.core.dmn.verification.result.actions.ActionScope.OUTPUT_ENTRY; +import static de.unikoblenz.fgbks.core.dmn.verification.result.actions.ActionScope.RULE; +import static de.unikoblenz.fgbks.core.dmn.verification.result.actions.ActionType.SHOW; + import de.unikoblenz.fgbks.base.builder.DefaultBuilder; -import de.unikoblenz.fgbks.base.domain.Name; import de.unikoblenz.fgbks.core.dmn.verification.result.AbstractResultObject; import java.util.HashMap; import javax.json.bind.annotation.JsonbProperty; @@ -9,15 +13,24 @@ import org.apache.commons.lang3.Validate; public class Action extends AbstractResultObject { - private static final Name DEFAULT_ACTION_NAME = new Name("Fix"); + public static Action ACTION_SHOW_RULES; + public static Action ACTION_SHOW_INPUT_ENTRIES; + public static Action ACTION_SHOW_OUTPUT_ENTRIES; + + static { + ACTION_SHOW_RULES = getBuilder().withActionType(SHOW).withActionScope(RULE).build(); + ACTION_SHOW_INPUT_ENTRIES = + getBuilder().withActionType(SHOW).withActionScope(INPUT_ENTRY).build(); + ACTION_SHOW_OUTPUT_ENTRIES = + getBuilder().withActionType(SHOW).withActionScope(OUTPUT_ENTRY).build(); + } + private ActionType actionType; private ActionScope actionScope; private HashMap<String, String> values; - private Name actionName; private Action() { values = new HashMap<>(); - actionName = DEFAULT_ACTION_NAME; } @JsonbProperty("actionType") @@ -35,9 +48,8 @@ public class Action extends AbstractResultObject { return new HashMap<>(values); } - @JsonbProperty("actionName") - public Name getActionName() { - return actionName; + private static Builder getBuilder() { + return new Action().new Builder(); } private class Builder extends DefaultBuilder<Action> { @@ -53,18 +65,15 @@ public class Action extends AbstractResultObject { } public Builder addValue(String key, String value) { - this.value.values.put(Validate.notNull(key), value); - return this; - } - - public Builder withActionName(Name actionName) { - this.value.actionName = actionName; + this.value.values.put(Validate.notNull(key), Validate.notNull(value)); return this; } @Override protected void validate() { super.validate(); + Validate.notNull(actionScope); + Validate.notNull(actionType); } } } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/ActionScope.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/ActionScope.java index 584306b8cdca43630a78635ae15aa2c7cd411c5f..5988bfa9981bad4b7f0d22e8617352b4f1a42c54 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/ActionScope.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/ActionScope.java @@ -2,6 +2,8 @@ package de.unikoblenz.fgbks.core.dmn.verification.result.actions; public enum ActionScope { RULE, + INPUT_ENTRY, + OUTPUT_ENTRY, INPUT_NODE, INPUT_COLUMN, OUTPUT_COLUMN diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/ActionType.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/ActionType.java index 6910f9b562abeee2773d96b5ad747dca79b3302e..f363a81ff0d39d312da043651df04006d11fb1cc 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/ActionType.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/ActionType.java @@ -3,5 +3,6 @@ package de.unikoblenz.fgbks.core.dmn.verification.result.actions; public enum ActionType { UPDATE, CREATE, - DELETE + DELETE, + SHOW // READ } diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/VerificationFix.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/VerificationFix.java new file mode 100644 index 0000000000000000000000000000000000000000..84dc2e68cf9e70d515a89b76adebc834a7dc08cc --- /dev/null +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/result/actions/VerificationFix.java @@ -0,0 +1,70 @@ +package de.unikoblenz.fgbks.core.dmn.verification.result.actions; + +import static de.unikoblenz.fgbks.core.dmn.verification.result.actions.Action.ACTION_SHOW_INPUT_ENTRIES; +import static de.unikoblenz.fgbks.core.dmn.verification.result.actions.Action.ACTION_SHOW_OUTPUT_ENTRIES; +import static de.unikoblenz.fgbks.core.dmn.verification.result.actions.Action.ACTION_SHOW_RULES; + +import de.unikoblenz.fgbks.base.builder.DefaultBuilder; +import de.unikoblenz.fgbks.base.domain.Name; +import java.util.ArrayList; +import java.util.List; +import org.apache.commons.lang3.Validate; + +public class VerificationFix { + + private static final Name DEFAULT_FIX_NAME = new Name("Fix"); + private static final Name DEFAULT_SHOW_NAME = new Name("Show"); + + public static VerificationFix SHOW_RULES; + public static VerificationFix SHOW_INPUT_ENTRIES; + public static VerificationFix SHOW_OUTPUT_ENTRIES; + + static { + SHOW_RULES = + VerificationFix.getBuilder() + .withFixName(DEFAULT_SHOW_NAME) + .addAction(ACTION_SHOW_RULES) + .build(); + SHOW_INPUT_ENTRIES = + VerificationFix.getBuilder() + .withFixName(DEFAULT_SHOW_NAME) + .addAction(ACTION_SHOW_INPUT_ENTRIES) + .build(); + SHOW_OUTPUT_ENTRIES = + VerificationFix.getBuilder() + .withFixName(DEFAULT_SHOW_NAME) + .addAction(ACTION_SHOW_OUTPUT_ENTRIES) + .build(); + } + + private Name fixName; + private List<Action> actions; + + private VerificationFix() { + fixName = DEFAULT_FIX_NAME; + actions = new ArrayList<>(); + } + + private static Builder getBuilder() { + return new VerificationFix().new Builder(); + } + + private class Builder extends DefaultBuilder<VerificationFix> { + + public Builder withFixName(Name fixName) { + value.fixName = fixName; + return this; + } + + public Builder addAction(Action action) { + value.actions.add(Validate.notNull(action)); + return this; + } + + @Override + protected void validate() { + super.validate(); + Validate.notNull(fixName); + } + } +}