All Downloads are FREE. Search and download functionalities are using the official Maven repository.

liquibase.ext.ora.addcheck.AddCheckChange Maven / Gradle / Ivy

There is a newer version: 4.32.0
Show newest version
package liquibase.ext.ora.addcheck;

import liquibase.change.DatabaseChange;
import liquibase.database.Database;
import liquibase.ext.ora.check.CheckAttribute;
import liquibase.ext.ora.dropcheck.DropCheckChange;

import liquibase.statement.SqlStatement;
import liquibase.change.Change;
import liquibase.change.ChangeMetaData;


@DatabaseChange(name="addCheck", description = "Add Check", priority = ChangeMetaData.PRIORITY_DEFAULT)
public class AddCheckChange extends CheckAttribute {


    public AddCheckChange() {
    }


    public SqlStatement[] generateStatements(Database database) {

        String schemaName = getSchemaName() == null ? database.getDefaultSchemaName() : getSchemaName();

        AddCheckStatement statement = new AddCheckStatement(schemaName, getTableName(), getConstraintName(), getCondition());
        statement.setTablespace(getTablespace());
        statement.setDisable(getDisable());
        statement.setDeferrable(getDeferrable());
        statement.setInitiallyDeferred(getInitiallyDeferred());
        statement.setRely(getRely());
        statement.setValidate(getValidate());

        return new SqlStatement[]{statement};
    }

    public String getConfirmationMessage() {
        return "Constraint check " + getConstraintName() + " has been added to " + getTableName();
    }

    protected Change[] createInverses() {
        if (getConstraintName() == null) {
            return null;
        }

        DropCheckChange inverse = new DropCheckChange();
        inverse.setSchemaName(getSchemaName());
        inverse.setTableName(getTableName());
        inverse.setConstraintName(getConstraintName());

        return new Change[]{inverse};
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy