From d2a08206b927fdb946881722c9099988f1854750 Mon Sep 17 00:00:00 2001
From: npedot <nicola.pedot@gmail.com>
Date: Wed, 18 Nov 2020 21:14:21 +0100
Subject: [PATCH] extracts functional parse

---
 .../unibz.cs.semint.kprime/domain/ddl/Schema.kt       | 10 ++--------
 .../domain/ddl/SchemaCmdParser.kt                     | 11 +++++++++++
 2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/src/main/kotlin/unibz.cs.semint.kprime/domain/ddl/Schema.kt b/src/main/kotlin/unibz.cs.semint.kprime/domain/ddl/Schema.kt
index d138c34..6d6d485 100644
--- a/src/main/kotlin/unibz.cs.semint.kprime/domain/ddl/Schema.kt
+++ b/src/main/kotlin/unibz.cs.semint.kprime/domain/ddl/Schema.kt
@@ -171,14 +171,8 @@ class Schema () {
     }
 
     fun addFunctional(tableName:String, setExpression: String): Schema {
-        val constraintsToAdd = Constraint.set(setExpression)
-        for (constraint in constraintsToAdd) {
-            constraint.name=tableName+".functional"
-            constraint.type=Constraint.TYPE.FUNCTIONAL.name
-            constraint.source.table=tableName
-            constraint.target.table=tableName
-        }
-        constraints().addAll(constraintsToAdd)
+        constraints().addAll(SchemaCmdParser
+                .parseFunctionals(tableName, setExpression))
         return this
     }
 
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 d737c03..97f1123 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
@@ -11,5 +11,16 @@ object SchemaCmdParser {
         return table
     }
 
+    fun parseFunctionals(tableName: String,setExpression: String): Set<Constraint> {
+        val constraintsToAdd = Constraint.set(setExpression)
+        for (constraint in constraintsToAdd) {
+            constraint.name = tableName + ".functional"
+            constraint.type = Constraint.TYPE.FUNCTIONAL.name
+            constraint.source.table = tableName
+            constraint.target.table = tableName
+        }
+        return constraintsToAdd
+    }
+
 
 }
\ No newline at end of file
-- 
GitLab