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 03ade1bda12aa05111322d5aff675b1fa50f7033..7c3b8cdff28da9d4422c583ea63c7adc6d18bd00 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]