From 6065b7dfef8f618578382f9dbd873df3e6aa6197 Mon Sep 17 00:00:00 2001
From: Jonas Blatt <jonasblatt@uni-koblenz.de>
Date: Wed, 16 Oct 2019 11:58:27 +0200
Subject: [PATCH] Fix VDmnFunctions, no public constructor

---
 .../core/dmn/domain/vdmn/utils/VDmnFunctions.java      |  5 +++--
 .../verifier/impl/PredefinedExistingValueVerifier.java |  6 ++++--
 .../verifier/impl/PredefinedMissingValueVerifier.java  | 10 +++++++---
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/utils/VDmnFunctions.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/utils/VDmnFunctions.java
index 4319f908..447276a8 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/utils/VDmnFunctions.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/utils/VDmnFunctions.java
@@ -21,6 +21,7 @@ import org.apache.commons.lang3.Validate;
  */
 public class VDmnFunctions {
 
+  private VDmnFunctions() {}
   /**
    * Generate a list of {@link VDmnColumn}, which are in the {@link VDmnDefinition} and has the
    * defined type ({@link VTypeRef}).
@@ -223,7 +224,7 @@ public class VDmnFunctions {
    * @param column the {@link VDmnColumn}
    * @return a string, representing the "name" of the column
    */
-  public String getColumnStringName(VDmnColumn column) {
+  public static String getColumnStringName(VDmnColumn column) {
     Validate.notNull(column);
     return column.getLabel().isPresent()
         ? column.getLabel().get().toString()
@@ -238,7 +239,7 @@ public class VDmnFunctions {
    * @param column the {@link VDmnColumn}
    * @return a string, representing the "name" of the column + "name"
    */
-  public String getColumnStringNameWithDoubleQuotes(VDmnColumn column) {
+  public static String getColumnStringNameWithDoubleQuotes(VDmnColumn column) {
     Validate.notNull(column);
     return "\"" + getColumnStringName(column) + "\"";
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PredefinedExistingValueVerifier.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PredefinedExistingValueVerifier.java
index aef754da..9389f26e 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PredefinedExistingValueVerifier.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PredefinedExistingValueVerifier.java
@@ -1,5 +1,6 @@
 package de.unikoblenz.fgbks.core.dmn.verification.verifier.impl;
 
+import static de.unikoblenz.fgbks.core.dmn.domain.vdmn.utils.VDmnFunctions.getColumnStringNameWithDoubleQuotes;
 import static de.unikoblenz.fgbks.core.dmn.verification.result.actions.VerificationFix.SHOW_INPUT_ENTRIES;
 import static de.unikoblenz.fgbks.core.dmn.verification.result.actions.VerificationFix.SHOW_OUTPUT_ENTRIES;
 
@@ -80,7 +81,8 @@ public class PredefinedExistingValueVerifier extends AbstractVerifier {
         stringValue.isInputValue() ? SHOW_INPUT_ENTRIES : SHOW_OUTPUT_ENTRIES);
     vreFactory.addToEntry(
         VerificationClassification.WARNING,
-        "String value \"%s\" was not found in the list of predefined values.",
-        missingStringValue);
+        "String value \"%s\" was not found in the list of predefined values of column %s.",
+        missingStringValue,
+        getColumnStringNameWithDoubleQuotes(stringValue.getDmnColumn()));
   }
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PredefinedMissingValueVerifier.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PredefinedMissingValueVerifier.java
index 4dc9443b..185c1a54 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PredefinedMissingValueVerifier.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PredefinedMissingValueVerifier.java
@@ -1,5 +1,6 @@
 package de.unikoblenz.fgbks.core.dmn.verification.verifier.impl;
 
+import static de.unikoblenz.fgbks.core.dmn.domain.vdmn.utils.VDmnFunctions.getColumnStringNameWithDoubleQuotes;
 import static de.unikoblenz.fgbks.core.dmn.verification.result.actions.VerificationFix.SHOW_INPUT_COLUMNS;
 import static de.unikoblenz.fgbks.core.dmn.verification.result.actions.VerificationFix.SHOW_OUTPUT_COLUMNS;
 
@@ -58,8 +59,8 @@ public class PredefinedMissingValueVerifier extends AbstractVerifier {
     }
     // get all missing strings
     Set<String> missingStrings = new HashSet<>();
-    for (String s : stringValuesInColumn) {
-      if (!predefinedValues.contains(s)) {
+    for (String s : predefinedValues) {
+      if (!stringValuesInColumn.contains(s)) {
         missingStrings.add(s);
       }
     }
@@ -86,8 +87,11 @@ public class PredefinedMissingValueVerifier extends AbstractVerifier {
     vreFactory.addVerificationFix(
         stringColumn.isInputColumn() ? SHOW_INPUT_COLUMNS : SHOW_OUTPUT_COLUMNS);
     StringBuilder sb = new StringBuilder();
+    sb.append("In column ");
+    sb.append(getColumnStringNameWithDoubleQuotes(stringColumn));
+    sb.append(". ");
     sb.append(missingStringValues.size() > 1 ? "These string values are" : "This string value is");
-    sb.append(" not present in the predefined values of the column: ");
+    sb.append(" not used: ");
     sb.append(
         missingStringValues.stream().map(v -> '"' + v + '"').collect(Collectors.joining(",")));
     vreFactory.addToEntry(VerificationClassification.WARNING, sb.toString());
-- 
GitLab