From c36d3b185f15d992db56b61a41914d4d7f1699bb Mon Sep 17 00:00:00 2001
From: Jonas Blatt <jonasblatt@uni-koblenz.de>
Date: Wed, 30 Oct 2019 17:14:38 +0100
Subject: [PATCH] Add decisionId in action value

---
 .../verification/verifier/impl/MissingRuleVerifier.java  | 9 ++++++---
 .../verifier/impl/PartialReductionVerifier.java          | 5 ++++-
 .../META-INF/resources/js/dmnVerifierActions.js          | 6 +++---
 3 files changed, 13 insertions(+), 7 deletions(-)

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 0e6bdcd2..6f72e8e9 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
@@ -65,7 +65,10 @@ public class MissingRuleVerifier extends AbstractVerifier {
                 .collect(Collectors.joining(" / ")));
         sb.append(" }");
         Action.Builder fixActionBuilder =
-            Action.getBuilder().withActionScope(ActionScope.RULE).withActionType(ActionType.CREATE);
+            Action.getBuilder()
+                .withActionScope(ActionScope.RULE)
+                .withActionType(ActionType.CREATE)
+                .addValue("decisionId", missingRule.getVDmnDecision().getDecisionId().getValue());
         for (VDmnInputValue v : missingRule.getVDmnInputValues()) {
           fixActionBuilder.addValue(
               v.getVDmnInputColumn().getInputId().getValue(), v.getBoundary().getParsedText());
@@ -99,14 +102,14 @@ public class MissingRuleVerifier extends AbstractVerifier {
   private VDmnRuleChangeableImpl constructPseudoMissingRule(List<VDmnInputColumn> inputs) {
     Builder b =
         VDmnRuleImpl.getBuilder()
-            .withRuleId(new RuleId("TODO")) // TODO
+            .withRuleId(new RuleId("TODO"))
             .withVDmnDecisionTable(inputs.get(0).getVDmnDecisionTable())
             .withRowNumber(new RowNumber(INITIAL_ROW_NUMER));
 
     for (VDmnInputColumn col : inputs) {
       b.addVDmnInputValue(
           VDmnInputValueImpl.getBuilder()
-              .withInputEntryId(new InputEntryId("TODO")) // TODO
+              .withInputEntryId(new InputEntryId("TODO"))
               .withText("")
               .withVDmnInputColumn(col)
               .withVDmnRuleFromBuilder(b)
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PartialReductionVerifier.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PartialReductionVerifier.java
index 2c9c58ee..a166b441 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PartialReductionVerifier.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PartialReductionVerifier.java
@@ -157,7 +157,10 @@ public class PartialReductionVerifier extends AbstractVerifier {
               .get());
     }
     Action.Builder fixActionBuilder =
-        Action.getBuilder().withActionScope(ActionScope.RULE).withActionType(ActionType.CREATE);
+        Action.getBuilder()
+            .withActionScope(ActionScope.RULE)
+            .withActionType(ActionType.CREATE)
+            .addValue("decisionId", inColumns.get(0).getVDmnDecision().getDecisionId().getValue());
     for (int i = 0; i < inColumns.size(); i++) {
       fixActionBuilder.addValue(
           inColumns.get(i).getInputId().getValue(), boundaries.get(i).getParsedText());
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 b2b0570f..93879338 100644
--- a/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifierActions.js
+++ b/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifierActions.js
@@ -214,7 +214,7 @@ function performVerificationFixCREATE(verificationEntry, fixAction) {
  * @param {Action} fixAction
  */
 function createRule(verificationEntry, fixAction) {
-  openViewWithId(verificationEntry.elements[0].identifier['decisionId']);
+  openViewWithId(fixAction.actionValues['decisionId']);
   const modeler = getCurrentModeler();
   const rule = modeler.addRow({type: "dmn:DecisionRule"});
   const {cells} = rule;
@@ -298,7 +298,7 @@ function performVerificationFixDELETE(verificationEntry, fixAction) {
  * @param {Action} fixAction
  */
 function deleteRule(verificationEntry, fixAction) {
-  openViewWithId(verificationEntry.elements[0].identifier['decisionId']);
+  openViewWithId(fixAction.actionValues['decisionId']);
   const modeler = getCurrentModeler();
   for (const [key, value] of Object.entries(fixAction.actionValues)) {
     if (key === 'ruleId') {
@@ -314,7 +314,7 @@ function deleteRule(verificationEntry, fixAction) {
  * @param {String} columnIdName
  */
 function deleteColumn(verificationEntry, fixAction, columnIdName) {
-  openViewWithId(verificationEntry.elements[0].identifier['decisionId']);
+  openViewWithId(fixAction.actionValues['decisionId']);
   const modeler = getCurrentModeler();
   verificationEntry.elements.forEach(function (el) {
     let col = getSheetElementWithId(el.identifier[columnIdName]);
-- 
GitLab