Coverage Report - liquibase.sqlgenerator.core.AlterSequenceGenerator
 
Classes in this File Line Coverage Branch Coverage Complexity
AlterSequenceGenerator
37%
9/24
0%
0/16
3.667
 
 1  
 package liquibase.sqlgenerator.core;
 2  
 
 3  
 import liquibase.database.Database;
 4  
 import liquibase.database.core.DB2Database;
 5  
 import liquibase.database.core.FirebirdDatabase;
 6  
 import liquibase.database.core.H2Database;
 7  
 import liquibase.database.core.HsqlDatabase;
 8  
 import liquibase.database.core.MaxDBDatabase;
 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.AlterSequenceStatement;
 14  
 
 15  68
 public class AlterSequenceGenerator extends AbstractSqlGenerator<AlterSequenceStatement> {
 16  
 
 17  
     @Override
 18  
     public boolean supports(AlterSequenceStatement statement, Database database) {
 19  49
         return database.supportsSequences();
 20  
     }
 21  
 
 22  
     @Override
 23  
     public ValidationErrors validate(AlterSequenceStatement alterSequenceStatement, Database database,
 24  
             SqlGeneratorChain sqlGeneratorChain) {
 25  9
         ValidationErrors validationErrors = new ValidationErrors();
 26  
 
 27  9
         validationErrors.checkDisallowedField("incrementBy", alterSequenceStatement.getIncrementBy(), database,
 28  
                 HsqlDatabase.class, H2Database.class);
 29  9
         validationErrors.checkDisallowedField("maxValue", alterSequenceStatement.getMaxValue(), database,
 30  
                 HsqlDatabase.class, H2Database.class);
 31  9
         validationErrors.checkDisallowedField("minValue", alterSequenceStatement.getMinValue(), database,
 32  
                 H2Database.class);
 33  9
         validationErrors.checkDisallowedField("ordered", alterSequenceStatement.getOrdered(), database,
 34  
                 MaxDBDatabase.class, DB2Database.class);
 35  
 
 36  9
         validationErrors.checkRequiredField("sequenceName", alterSequenceStatement.getSequenceName());
 37  
 
 38  9
         return validationErrors;
 39  
     }
 40  
 
 41  
     @Override
 42  
     public Sql[] generateSql(AlterSequenceStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
 43  0
         StringBuffer buffer = new StringBuffer();
 44  0
         buffer.append("ALTER SEQUENCE ");
 45  0
         buffer.append(database.escapeSequenceName(statement.getSchemaName(), statement.getSequenceName()));
 46  
 
 47  0
         if (statement.getIncrementBy() != null) {
 48  0
             buffer.append(" INCREMENT BY ").append(statement.getIncrementBy());
 49  
         }
 50  
 
 51  0
         if (statement.getMinValue() != null) {
 52  0
             if (database instanceof FirebirdDatabase || database instanceof HsqlDatabase
 53  
                     || database instanceof H2Database) {
 54  0
                 buffer.append(" RESTART WITH ").append(statement.getMinValue());
 55  
             } else {
 56  0
                 buffer.append(" MINVALUE ").append(statement.getMinValue());
 57  
             }
 58  
         }
 59  
 
 60  0
         if (statement.getMaxValue() != null) {
 61  0
             buffer.append(" MAXVALUE ").append(statement.getMaxValue());
 62  
         }
 63  
 
 64  0
         if (statement.getOrdered() != null) {
 65  0
             if (statement.getOrdered()) {
 66  0
                 buffer.append(" ORDER");
 67  
             }
 68  
         }
 69  
 
 70  0
         return new Sql[] { new UnparsedSql(buffer.toString()) };
 71  
     }
 72  
 }