From 8cc0a2b7b4ff2e85f16f88116c7f81355dfcfe64 Mon Sep 17 00:00:00 2001
From: npedot <nicola.pedot@gmail.com>
Date: Wed, 18 Mar 2020 20:54:32 +0100
Subject: [PATCH] returns more information in applicability

---
 .../usecase/common/XPathTransformUseCase.kt        |  4 ++--
 .../usecase/current/TransformerXUseCase.kt         | 14 ++++++++++++--
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/main/kotlin/unibz.cs.semint.kprime/usecase/common/XPathTransformUseCase.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/common/XPathTransformUseCase.kt
index 8065f11..80e744f 100644
--- a/src/main/kotlin/unibz.cs.semint.kprime/usecase/common/XPathTransformUseCase.kt
+++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/common/XPathTransformUseCase.kt
@@ -195,9 +195,9 @@ class XPathTransformUseCase  {
                     val pathCondition = pathTokens[1]
                     val pathSize = pathTokens[2].toInt()
                     if (pathCondition == ">")
-                        if ((templModel[name])!!.size <= pathSize) violation = "violation: ${templModel[name]} size <= ${pathSize}"
+                        if ((templModel[name])!!.size <= pathSize) violation = "violation: ${name}:${xPaths.getProperty(name)} ${templModel[name]} size <= ${pathSize}"
                     if (pathCondition == "=")
-                        if ((templModel[name])!!.size != pathSize) violation = "violation: ${templModel[name]} size != ${pathSize}"
+                        if ((templModel[name])!!.size != pathSize) violation = "violation: ${name}:${xPaths.getProperty(name)} ${templModel[name]} size != ${pathSize}"
                 }
             }
         }
diff --git a/src/main/kotlin/unibz.cs.semint.kprime/usecase/current/TransformerXUseCase.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/current/TransformerXUseCase.kt
index 07d71eb..5eaf742 100644
--- a/src/main/kotlin/unibz.cs.semint.kprime/usecase/current/TransformerXUseCase.kt
+++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/current/TransformerXUseCase.kt
@@ -102,8 +102,18 @@ class TransformerXUseCase(
         val dbFilePath = workingDir + db.name
         if (!File(dbFilePath).isFile) return Applicability(false,"db name ${dbFilePath} not exists", transformerParams)
 
-        val (mutableMap, violation) = xpathTransform.getTemplateModel(dbFilePath, xPathProperties, transformerParams)
-        return Applicability(violation.isEmpty(),"decomposeApplicable ${violation.isEmpty()} ${violation}", transformerParams)
+        var message = ""
+        var applicable = false
+        var mutableMap = mutableMapOf<String,Any>()
+        try {
+            val (templateMap, violation) = xpathTransform.getTemplateModel(dbFilePath, xPathProperties, transformerParams)
+            applicable = violation.isEmpty()
+            message = "decomposeApplicable ${violation.isEmpty()} ${violation}"
+            mutableMap = templateMap as MutableMap<String, Any>
+        } catch (e:Exception) {
+            message = e.localizedMessage
+        }
+        return Applicability(applicable, message, mutableMap)
     }
 
     override fun composeApplicable(db: Database, transformationStrategy: TransformationStrategy): Applicability {
-- 
GitLab