From dbbedb3dee034ba8f49c031ae1169e67c2c5c251 Mon Sep 17 00:00:00 2001 From: Jonas Blatt <jonasblatt@uni-koblenz.de> Date: Fri, 25 Oct 2019 18:25:22 +0200 Subject: [PATCH] Add actions for missing rules --- .../verification/result/actions/Action.java | 4 ++-- .../verifier/impl/MissingRuleVerifier.java | 18 +++++++++++++++++- .../resources/js/dmnVerifierActions.js | 2 +- 3 files changed, 20 insertions(+), 4 deletions(-) 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 44313e92..e87bef49 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 @@ -62,11 +62,11 @@ public class Action extends AbstractResultObject { return new HashMap<>(values); } - private static Builder getBuilder() { + public static Builder getBuilder() { return new Action().new Builder(); } - private class Builder extends DefaultBuilder<Action> { + public class Builder extends DefaultBuilder<Action> { public Builder withActionType(ActionType actionType) { value.actionType = actionType; diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/MissingRuleVerifier.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/MissingRuleVerifier.java index 25588d97..e75ffd35 100644 --- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/MissingRuleVerifier.java +++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/MissingRuleVerifier.java @@ -2,6 +2,7 @@ package de.unikoblenz.fgbks.core.dmn.verification.verifier.impl; import static de.unikoblenz.fgbks.core.dmn.domain.vdmn.utils.VDmnFunctions.templateDecision; +import de.unikoblenz.fgbks.base.domain.Name; import de.unikoblenz.fgbks.base.utils.UniqueIdGenerator; import de.unikoblenz.fgbks.base.utils.boundary.Boundary; import de.unikoblenz.fgbks.base.utils.boundary.bicreater.BoundaryBiCreaterType; @@ -21,6 +22,10 @@ import de.unikoblenz.fgbks.core.dmn.domain.vdmn.impl.VDmnRuleImpl; import de.unikoblenz.fgbks.core.dmn.domain.vdmn.impl.VDmnRuleImpl.Builder; import de.unikoblenz.fgbks.core.dmn.verification.result.VerificationResultEntry.VerificationClassification; import de.unikoblenz.fgbks.core.dmn.verification.result.VerificationResultEntryElement; +import de.unikoblenz.fgbks.core.dmn.verification.result.actions.Action; +import de.unikoblenz.fgbks.core.dmn.verification.result.actions.ActionScope; +import de.unikoblenz.fgbks.core.dmn.verification.result.actions.ActionType; +import de.unikoblenz.fgbks.core.dmn.verification.result.actions.VerificationFix; 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.types.MissingRuleVerification; @@ -33,6 +38,7 @@ import java.util.stream.Collectors; @DmnVerifier(verifierType = MissingRuleVerification.class) public class MissingRuleVerifier extends AbstractVerifier { + private static Name FIX_NAME = new Name("Add rule"); public static final long INITIAL_ROW_NUMER = 9999L; @Override @@ -57,7 +63,17 @@ public class MissingRuleVerifier extends AbstractVerifier { .map(s -> s.isEmpty() ? "-" : s) .collect(Collectors.joining(" / "))); sb.append(" }"); - + Action.Builder fixActionBuilder = + Action.getBuilder().withActionScope(ActionScope.RULE).withActionType(ActionType.CREATE); + for (VDmnInputValue v : missingRule.getDmnInputValues()) { + fixActionBuilder.addValue("inputColumnId", v.getDmnInputColumn().getInputId().getValue()); + fixActionBuilder.addValue("value", v.getBoundary().getParsedText()); + } + vreFactory.addVerificationFix( + VerificationFix.getBuilder() + .withFixName(FIX_NAME) + .addAction(fixActionBuilder.build()) + .build()); vreFactory.addElement(VerificationResultEntryElement.create(dmnDecisionTable)); vreFactory.addToEntry(VerificationClassification.WARNING, sb.toString()); } diff --git a/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifierActions.js b/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifierActions.js index 881f4707..75706537 100644 --- a/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifierActions.js +++ b/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifierActions.js @@ -21,7 +21,7 @@ function performVerificationFix(verificationEntry, fix, id) { case 'DELETE': // break; default: - alert("Action not defined!"); + alert("Action not defined: " + fix); } performHighlightFunction(); } -- GitLab