1 package liquibase.change.core;
2
3 import liquibase.change.AbstractChange;
4 import liquibase.change.ChangeMetaData;
5 import liquibase.database.Database;
6 import liquibase.database.core.SQLiteDatabase;
7 import liquibase.statement.SqlStatement;
8 import liquibase.statement.core.DropForeignKeyConstraintStatement;
9
10
11
12
13 public class DropForeignKeyConstraintChange extends AbstractChange {
14 private String baseTableSchemaName;
15 private String baseTableName;
16 private String constraintName;
17
18 public DropForeignKeyConstraintChange() {
19 super("dropForeignKeyConstraint", "Drop Foreign Key Constraint", ChangeMetaData.PRIORITY_DEFAULT);
20 }
21
22 public String getBaseTableSchemaName() {
23 return baseTableSchemaName;
24 }
25
26 public void setBaseTableSchemaName(String baseTableSchemaName) {
27 this.baseTableSchemaName = baseTableSchemaName;
28 }
29
30 public String getBaseTableName() {
31 return baseTableName;
32 }
33
34 public void setBaseTableName(String baseTableName) {
35 this.baseTableName = baseTableName;
36 }
37
38 public String getConstraintName() {
39 return constraintName;
40 }
41
42 public void setConstraintName(String constraintName) {
43 this.constraintName = constraintName;
44 }
45
46 public SqlStatement[] generateStatements(Database database) {
47
48 if (database instanceof SQLiteDatabase) {
49
50 return generateStatementsForSQLiteDatabase(database);
51 }
52
53 return new SqlStatement[] { new DropForeignKeyConstraintStatement(
54 getBaseTableSchemaName() == null ? database.getDefaultSchemaName() : getBaseTableSchemaName(),
55 getBaseTableName(), getConstraintName()), };
56 }
57
58 private SqlStatement[] generateStatementsForSQLiteDatabase(Database database) {
59
60
61
62 return new SqlStatement[] {};
63 }
64
65 public String getConfirmationMessage() {
66 return "Foreign key " + getConstraintName() + " dropped";
67 }
68 }