
liquibase.ext.ora.addcheck.AddCheckGenerator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of liquibase-oracle Show documentation
Show all versions of liquibase-oracle Show documentation
Some tags to work on Oracle DB.
package liquibase.ext.ora.addcheck;
import liquibase.database.Database;
import liquibase.database.core.OracleDatabase;
import liquibase.database.core.SQLiteDatabase;
import liquibase.exception.ValidationErrors;
import liquibase.sql.Sql;
import liquibase.sql.UnparsedSql;
import liquibase.sqlgenerator.SqlGeneratorChain;
import liquibase.sqlgenerator.core.AbstractSqlGenerator;
import liquibase.structure.core.Table;
public class AddCheckGenerator extends AbstractSqlGenerator {
public Sql[] generateSql(AddCheckStatement statement, Database database,
SqlGeneratorChain sqlGeneratorChain) {
StringBuilder sql = new StringBuilder();
sql.append("ALTER TABLE ").append(database.escapeTableName(null, statement.getSchemaName(), statement.getTableName())).append(" ");
sql.append("ADD ");
if (database.escapeObjectName(statement.getConstraintName(), Table.class) != null)
sql.append("CONSTRAINT ").append(database.escapeConstraintName(statement.getConstraintName())).append(" ");
sql.append("CHECK(").append(statement.getCondition()).append(")");
if (statement.getDeferrable() != null) {
if (statement.getDeferrable()) sql.append(" DEFERRABLE");
else sql.append(" NOT DEFERRABLE");
}
if (statement.getInitiallyDeferred() != null) {
if (statement.getInitiallyDeferred()) sql.append(" INITIALLY DEFERRED");
else sql.append(" INITIALLY IMMEDIATE");
}
if (statement.getDisable() != null) {
if (statement.getDisable()) sql.append(" DISABLE");
else sql.append(" ENABLE");
}
if (statement.getRely() != null) {
if (statement.getRely()) sql.append(" RELY");
}
if (statement.getValidate() != null) {
if (statement.getValidate()) sql.append(" VALIDATE");
}
return new Sql[]{new UnparsedSql(sql.toString())};
}
public boolean supports(AddCheckStatement statement, Database database) {
return database instanceof OracleDatabase;
}
public ValidationErrors validate(AddCheckStatement statement,
Database database, SqlGeneratorChain sqlGeneratorChain) {
ValidationErrors validationErrors = new ValidationErrors();
validationErrors.checkRequiredField("tableName", statement.getTableName());
validationErrors.checkRequiredField("condition", statement.getCondition());
return validationErrors;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy