Coverage Report - liquibase.sqlgenerator.core.AddDefaultValueGeneratorInformix
 
Classes in this File Line Coverage Branch Coverage Complexity
AddDefaultValueGeneratorInformix
35%
7/20
50%
1/2
1.25
 
 1  
 package liquibase.sqlgenerator.core;
 2  
 
 3  
 import liquibase.database.Database;
 4  
 import liquibase.database.core.InformixDatabase;
 5  
 import liquibase.database.typeconversion.TypeConverterFactory;
 6  
 import liquibase.database.core.SybaseDatabase;
 7  
 import liquibase.database.structure.Column;
 8  
 import liquibase.database.structure.Table;
 9  
 import liquibase.exception.ValidationErrors;
 10  
 import liquibase.sql.Sql;
 11  
 import liquibase.sql.UnparsedSql;
 12  
 import liquibase.sqlgenerator.SqlGeneratorChain;
 13  
 import liquibase.statement.core.AddDefaultValueStatement;
 14  
 
 15  76
 public class AddDefaultValueGeneratorInformix extends AddDefaultValueGenerator {
 16  
     @Override
 17  
     public int getPriority() {
 18  5
         return PRIORITY_DATABASE;
 19  
     }
 20  
 
 21  
     @Override
 22  
     public boolean supports(AddDefaultValueStatement statement, Database database) {
 23  65
         return database instanceof InformixDatabase;
 24  
     }
 25  
 
 26  
     @Override
 27  
     public ValidationErrors validate(AddDefaultValueStatement addDefaultValueStatement, Database database,
 28  
             SqlGeneratorChain sqlGeneratorChain) {
 29  1
         ValidationErrors validationErrors = super.validate(addDefaultValueStatement, database, sqlGeneratorChain);
 30  1
         if (addDefaultValueStatement.getColumnDataType() == null) {
 31  1
             validationErrors.checkRequiredField("columnDataType", addDefaultValueStatement.getColumnDataType());
 32  
         }
 33  1
         return validationErrors;
 34  
     }
 35  
 
 36  
     @Override
 37  
     public Sql[] generateSql(AddDefaultValueStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
 38  
 
 39  0
         Column column = new Column().setTable(new Table(statement.getTableName()).setSchema(statement.getSchemaName()))
 40  
                 .setName(statement.getColumnName());
 41  0
         Object defaultValue = statement.getDefaultValue();
 42  0
         StringBuffer sql = new StringBuffer("ALTER TABLE ");
 43  0
         sql.append(database.escapeTableName(statement.getSchemaName(), statement.getTableName()));
 44  0
         sql.append(" MODIFY (");
 45  0
         sql.append(database.escapeColumnName(statement.getSchemaName(), statement.getTableName(),
 46  
                 statement.getColumnName()));
 47  0
         sql.append(" ");
 48  0
         sql.append(TypeConverterFactory.getInstance().findTypeConverter(database)
 49  
                 .getDataType(statement.getColumnDataType(), false));
 50  0
         sql.append(" DEFAULT ");
 51  0
         sql.append(TypeConverterFactory.getInstance().findTypeConverter(database).getDataType(defaultValue)
 52  
                 .convertObjectToString(defaultValue, database));
 53  0
         sql.append(")");
 54  0
         UnparsedSql unparsedSql = new UnparsedSql(sql.toString(), column);
 55  0
         return new Sql[] { unparsedSql };
 56  
     }
 57  
 }