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 44313e921fa0ad7df3430e6958868ba897baa08b..e87bef499101c9ae5d3567f6a82ff079ae48f8d4 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 25588d974357e28f59ce98648a7660f7b2f75b17..e75ffd35c3c7b4b116f6a2a43b7f3b2e1e3c5f5e 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 881f4707b33c289f56715f893f6b11f270f91571..757065377b627a10ce23ff5480a1cd1755ce28e6 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(); }