View Javadoc

1   package liquibase.statement.core;
2   
3   import java.util.Arrays;
4   import java.util.HashSet;
5   import java.util.Set;
6   
7   import liquibase.statement.AbstractSqlStatement;
8   import liquibase.statement.AutoIncrementConstraint;
9   import liquibase.statement.ColumnConstraint;
10  import liquibase.statement.NotNullConstraint;
11  import liquibase.statement.PrimaryKeyConstraint;
12  import liquibase.statement.UniqueConstraint;
13  
14  public class AddColumnStatement extends AbstractSqlStatement {
15  
16      private String schemaName;
17      private String tableName;
18      private String columnName;
19      private String columnType;
20      private Object defaultValue;
21      private Set<ColumnConstraint> constraints = new HashSet<ColumnConstraint>();
22  
23      public AddColumnStatement(String schemaName, String tableName, String columnName, String columnType,
24              Object defaultValue, ColumnConstraint... constraints) {
25          this.schemaName = schemaName;
26          this.tableName = tableName;
27          this.columnName = columnName;
28          this.columnType = columnType;
29          this.defaultValue = defaultValue;
30          if (constraints != null) {
31              this.constraints.addAll(Arrays.asList(constraints));
32          }
33      }
34  
35      public String getSchemaName() {
36          return schemaName;
37      }
38  
39      public String getTableName() {
40          return tableName;
41      }
42  
43      public String getColumnName() {
44          return columnName;
45      }
46  
47      public String getColumnType() {
48          return columnType;
49      }
50  
51      public Set<ColumnConstraint> getConstraints() {
52          return constraints;
53      }
54  
55      public boolean isAutoIncrement() {
56          for (ColumnConstraint constraint : getConstraints()) {
57              if (constraint instanceof AutoIncrementConstraint) {
58                  return true;
59              }
60          }
61          return false;
62      }
63  
64      public boolean isPrimaryKey() {
65          for (ColumnConstraint constraint : getConstraints()) {
66              if (constraint instanceof PrimaryKeyConstraint) {
67                  return true;
68              }
69          }
70          return false;
71      }
72  
73      public boolean isNullable() {
74          if (isPrimaryKey()) {
75              return false;
76          }
77          for (ColumnConstraint constraint : getConstraints()) {
78              if (constraint instanceof NotNullConstraint) {
79                  return false;
80              }
81          }
82          return true;
83      }
84  
85      public boolean isUnique() {
86          for (ColumnConstraint constraint : getConstraints()) {
87              if (constraint instanceof UniqueConstraint) {
88                  return true;
89              }
90          }
91          return false;
92      }
93  
94      public Object getDefaultValue() {
95          return defaultValue;
96      }
97  }