From 57208562502fbc64568ab5a659631f14eb403ae6 Mon Sep 17 00:00:00 2001
From: npedot <nicola.pedot@gmail.com>
Date: Fri, 30 Oct 2020 18:53:16 +0100
Subject: [PATCH] adds drop column to drop use case

---
 .../unibz.cs.semint.kprime/domain/dml/DropColumn.kt   |  3 +++
 .../usecase/common/SQLizeDropUseCase.kt               | 11 +++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/main/kotlin/unibz.cs.semint.kprime/domain/dml/DropColumn.kt b/src/main/kotlin/unibz.cs.semint.kprime/domain/dml/DropColumn.kt
index 1d34f50..c58e973 100644
--- a/src/main/kotlin/unibz.cs.semint.kprime/domain/dml/DropColumn.kt
+++ b/src/main/kotlin/unibz.cs.semint.kprime/domain/dml/DropColumn.kt
@@ -5,6 +5,9 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty
 
 class DropColumn {
 
+    @JacksonXmlProperty(isAttribute = true)
+    var tableName :String = ""
+
     @JacksonXmlProperty(isAttribute = true)
     var name :String = ""
 }
\ No newline at end of file
diff --git a/src/main/kotlin/unibz.cs.semint.kprime/usecase/common/SQLizeDropUseCase.kt b/src/main/kotlin/unibz.cs.semint.kprime/usecase/common/SQLizeDropUseCase.kt
index dd52313..a41e092 100644
--- a/src/main/kotlin/unibz.cs.semint.kprime/usecase/common/SQLizeDropUseCase.kt
+++ b/src/main/kotlin/unibz.cs.semint.kprime/usecase/common/SQLizeDropUseCase.kt
@@ -1,10 +1,7 @@
 package unibz.cs.semint.kprime.usecase.common
 
 import unibz.cs.semint.kprime.domain.ddl.Constraint
-import unibz.cs.semint.kprime.domain.dml.ChangeSet
-import unibz.cs.semint.kprime.domain.dml.DropConstraint
-import unibz.cs.semint.kprime.domain.dml.DropTable
-import unibz.cs.semint.kprime.domain.dml.DropView
+import unibz.cs.semint.kprime.domain.dml.*
 
 class SQLizeDropUseCase {
 
@@ -16,9 +13,15 @@ class SQLizeDropUseCase {
             commands.add(dropViewCommand(dropView))
         for (dropConstraint in changeset.dropConstraint)
             commands.add(dropConstraintCommand(dropConstraint))
+        for (dropColumn in changeset.dropColumn)
+            commands.add(dropColumnsCommand(dropColumn))
         return commands
     }
 
+    private fun dropColumnsCommand(dropColumn: DropColumn): String {
+        return "ALTER TABLE ${dropColumn.tableName} DROP COLUMN ${dropColumn.name};"
+    }
+
     private fun dropConstraintCommand(dropConstraint: DropConstraint): String {
         when(dropConstraint.type) {
             Constraint.TYPE.PRIMARY_KEY.name -> return dropPrimaryKeyCommand(dropConstraint)
-- 
GitLab