From c5bbb462fad048bb862123a75994ea7cae626cea Mon Sep 17 00:00:00 2001 From: npedot <nicola.pedot@gmail.com> Date: Mon, 16 Nov 2020 18:07:41 +0100 Subject: [PATCH] exposes schema addInclusion and addDoubeInclusion constraint --- .../domain/ddl/Schema.kt | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) 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 03ade1b..7c3b8cd 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 @@ -138,6 +138,18 @@ class Schema () { return addMultivalued(tableName,setExpression) } + fun addInclusion(commandArgs:String): Schema { + val tableName:String = commandArgs.split(":")[0] + val setExpression: String= commandArgs.split(":")[1] + return addInclusion(tableName,setExpression) + } + + fun addDoubleInclusion(commandArgs:String): Schema { + val tableName:String = commandArgs.split(":")[0] + val setExpression: String= commandArgs.split(":")[1] + return addDoubleInclusion(tableName,setExpression) + } + fun addTable(commandArgs:String) : Schema { val table = SchemaCmdParser.parseTable(commandArgs) tables().add(table) @@ -194,6 +206,30 @@ class Schema () { return this } + fun addInclusion(tableName:String, setExpression: String): Schema { + val constraintsToAdd = Constraint.set(setExpression) + for (constraint in constraintsToAdd) { + constraint.name=tableName+".included" + constraint.type=Constraint.TYPE.MULTIVALUED.name + constraint.source.table=tableName + constraint.target.table=tableName + } + constraints().addAll(constraintsToAdd) + return this + } + + fun addDoubleInclusion(tableName:String, setExpression: String): Schema { + val constraintsToAdd = Constraint.set(setExpression) + for (constraint in constraintsToAdd) { + constraint.name=tableName+".doubleinc" + constraint.type=Constraint.TYPE.MULTIVALUED.name + constraint.source.table=tableName + constraint.target.table=tableName + } + constraints().addAll(constraintsToAdd) + return this + } + fun addKey(commandArgs:String):Schema { val tableName:String = commandArgs.split(":")[0] val attributeNames = commandArgs.split(":")[1] -- GitLab