Skip to content
Snippets Groups Projects
Commit ba391132 authored by npedot's avatar npedot
Browse files

fixes for double inclusion and inclusion

parent c5bbb462
No related branches found
No related tags found
No related merge requests found
......@@ -138,18 +138,6 @@ 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)
......@@ -206,30 +194,6 @@ 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]
......@@ -283,6 +247,26 @@ class Schema () {
return this
}
fun addInclusion(commandArgs:String):Schema {
val source:String = commandArgs.split("-->")[0]
val target:String = commandArgs.split("-->")[1]
val sourceTableName:String = source.split(":")[0]
val sourceAttributeNames = source.split(":")[1]
val targetTableName:String = target.split(":")[0]
val targetAttributeNames = target.split(":")[1]
val constraint = Constraint.inclusion {}
constraint.name = "${sourceTableName}_${targetTableName}.inclusion"
constraint.source.table=sourceTableName
constraint.target.table=targetTableName
constraint.source.columns.addAll(Column.set(sourceAttributeNames))
constraint.target.columns.addAll(Column.set(targetAttributeNames))
constraints().add(constraint)
return this
}
fun decomposeBCNF(): Set<Relation> {
var allDecomposed = mutableSetOf<Relation>()
var tables = tables()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment