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 d138c3441896192eba805478246c6347983ca958..6d6d48519476b0e67cb34bbe9987fd1b6118d875 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 d737c03563d8e6c3c2c6640d5a7631e05ec44d70..97f1123fb6ec9ab6682253d9c6a5e6ca5876b48a 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