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 6d6d48519476b0e67cb34bbe9987fd1b6118d875..cb8b6fd4c8adc2bab2fc389d69bb807c0eaad740 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 @@ -28,6 +28,12 @@ class Schema () { return ArrayList() } + fun constraintsByType(type :Constraint.TYPE): Set<Constraint> { + var resultCols = mutableSetOf<Column>() + return constraints().filter { c -> + c.type == type.name }.toSet() + } + fun tables():ArrayList<Table> { if (tables!=null) return tables as ArrayList<Table> return ArrayList() @@ -54,13 +60,18 @@ class Schema () { } fun addKey(tableName:String, k:Set<Column>): Constraint { + val primaryConstraint = buildKey(tableName, k) + constraints().add(primaryConstraint) + return primaryConstraint + } + + fun buildKey(tableName: String, k: Set<Column>): Constraint { val primaryConstraint = Constraint() - primaryConstraint.name="pkey_$tableName" - primaryConstraint.source.table="$tableName" + primaryConstraint.name = "pkey_$tableName" + primaryConstraint.source.table = "$tableName" primaryConstraint.source.columns.addAll(k) primaryConstraint.target.columns.addAll(k) - primaryConstraint.type= Constraint.TYPE.PRIMARY_KEY.name - constraints().add(primaryConstraint) + primaryConstraint.type = Constraint.TYPE.PRIMARY_KEY.name return primaryConstraint } diff --git a/src/main/kotlin/unibz.cs.semint.kprime/domain/dml/ChangeSet.kt b/src/main/kotlin/unibz.cs.semint.kprime/domain/dml/ChangeSet.kt index a71cfedef9d1d1eea033840c9eb161f47f1e1ed0..3a40b102f8e74cf9cb7772586e6b9cadc5449029 100644 --- a/src/main/kotlin/unibz.cs.semint.kprime/domain/dml/ChangeSet.kt +++ b/src/main/kotlin/unibz.cs.semint.kprime/domain/dml/ChangeSet.kt @@ -94,9 +94,7 @@ class ChangeSet() { } fun size(): Int { - return createView.size +createTable.size + createConstraint.size - + dropView.size + dropTable.size + dropConstraint.size - + dropMapping.size + return createView.size +createTable.size + createConstraint.size + createMapping.size + dropView.size + dropTable.size + dropConstraint.size + dropMapping.size } @JsonIgnore