From f85989a12221f6fc434c10f4ca47e4d346cd6c76 Mon Sep 17 00:00:00 2001
From: npedot <nicola.pedot@gmail.com>
Date: Mon, 23 Nov 2020 11:46:52 +0100
Subject: [PATCH] adds parse inclusion,double inclusion,multivalued schema
 constraint

---
 .../domain/ddl/SchemaCmdParser.kt             | 20 +++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/main/kotlin/unibz.cs.semint.kprime/domain/ddl/SchemaCmdParser.kt b/src/main/kotlin/unibz.cs.semint.kprime/domain/ddl/SchemaCmdParser.kt
index 97f1123..c65fb94 100644
--- a/src/main/kotlin/unibz.cs.semint.kprime/domain/ddl/SchemaCmdParser.kt
+++ b/src/main/kotlin/unibz.cs.semint.kprime/domain/ddl/SchemaCmdParser.kt
@@ -12,10 +12,26 @@ object SchemaCmdParser {
     }
 
     fun parseFunctionals(tableName: String,setExpression: String): Set<Constraint> {
+        return parseConstraint(setExpression, tableName, Constraint.TYPE.FUNCTIONAL.name)
+    }
+
+    fun parseMultivalued(tableName: String,setExpression: String): Set<Constraint> {
+        return parseConstraint(setExpression, tableName, Constraint.TYPE.MULTIVALUED.name)
+    }
+
+    fun parseInclusion(tableName: String,setExpression: String): Set<Constraint> {
+        return parseConstraint(setExpression, tableName, Constraint.TYPE.INCLUSION.name)
+    }
+
+    fun parseDoubleInclusion(tableName: String,setExpression: String): Set<Constraint> {
+        return parseConstraint(setExpression, tableName, Constraint.TYPE.DOUBLE_INCLUSION.name)
+    }
+
+    private fun parseConstraint(setExpression: String, tableName: String, type:String): Set<Constraint> {
         val constraintsToAdd = Constraint.set(setExpression)
         for (constraint in constraintsToAdd) {
-            constraint.name = tableName + ".functional"
-            constraint.type = Constraint.TYPE.FUNCTIONAL.name
+            constraint.name = "$tableName.$type"
+            constraint.type = type
             constraint.source.table = tableName
             constraint.target.table = tableName
         }
-- 
GitLab