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