// Path: src/main/java/liquibase/ext/ora/check/CheckAttribute.java
// public abstract class CheckAttribute extends AbstractChange {
// 
//     private String tableName;
//     private String tablespace;
//     private String schemaName;
//     private String constraintName;
//     private String condition;
//     private Boolean disable;
//     private Boolean deferrable;
//     private Boolean initiallyDeferred;
//     private Boolean rely;
//     private Boolean validate;
// 
//     public void setTableName(String tableName) {
//         this.tableName = tableName;
//     }
// 
//     public String getTableName() {
//         return tableName;
//     }
// 
//     public void setTablespace(String tablespace) {
//         this.tablespace = tablespace;
//     }
// 
//     public String getTablespace() {
//         return tablespace;
//     }
// 
//     public String getSchemaName() {
//         return schemaName;
//     }
// 
//     public void setSchemaName(String schemaName) {
//         this.schemaName = StringUtil.trimToNull(schemaName);
//     }
// 
//     public void setConstraintName(String constraintName) {
//         this.constraintName = constraintName;
//     }
// 
//     public String getConstraintName() {
//         return constraintName;
//     }
// 
//     public String getCondition() {
//         return condition;
//     }
// 
//     public void setCondition(String condition) {
//         this.condition = condition;
//     }
// 
//     public Boolean getDisable() {
//         return disable;
//     }
// 
//     public void setDisable(Boolean disable) {
//         this.disable = disable;
//     }
// 
//     public Boolean getDeferrable() {
//         return deferrable;
//     }
// 
//     public void setDeferrable(Boolean deferrable) {
//         this.deferrable = deferrable;
//     }
// 
//     public Boolean getInitiallyDeferred() {
//         return initiallyDeferred;
//     }
// 
//     public void setInitiallyDeferred(Boolean initiallyDeferred) {
//         this.initiallyDeferred = initiallyDeferred;
//     }
// 
//     public Boolean getValidate() {
//         return validate;
//     }
// 
//     public void setValidate(Boolean validate) {
//         this.validate = validate;
//     }
// 
//     public Boolean getRely() {
//         return rely;
//     }
// 
//     public void setRely(Boolean rely) {
//         this.rely = rely;
//     }
// 
//     public SqlStatement[] generateStatements(Database database) {
// 
//         return null;
//     }
// 
//     public String getConfirmationMessage() {
//         return null;
//     }
// 
// }
// 
// Path: src/main/java/liquibase/ext/ora/enableconstraint/EnableConstraintChange.java
// @DatabaseChange(name="enableConstraint", description = "Enable constraint", priority = ChangeMetaData.PRIORITY_DEFAULT + 200)
// public class EnableConstraintChange extends CheckAttribute {
// 
//     public EnableConstraintChange() {
//     }
// 
//     @Override
//     public SqlStatement[] generateStatements(Database database) {
// 
//         String schemaName = getSchemaName() == null ? database.getDefaultSchemaName() : getSchemaName();
// 
//         EnableConstraintStatement statement = new EnableConstraintStatement(getTableName(), schemaName, getConstraintName());
//         statement.setTablespace(getTablespace());
// 
//         return new SqlStatement[]{statement};
//     }
// 
//     @Override
//     public String getConfirmationMessage() {
//         return "Constraint " + getConstraintName() + " ENABLED in " + getTableName();
//     }
// 
//     @Override
//     protected Change[] createInverses() {
//         DisableConstraintChange inverse = new DisableConstraintChange();
//         inverse.setSchemaName(getSchemaName());
//         inverse.setTableName(getTableName());
//         inverse.setConstraintName(getConstraintName());
// 
//         return new Change[]{inverse};
//     }
// 
// }


import liquibase.change.Change;
import liquibase.change.ChangeMetaData;
import liquibase.change.DatabaseChange;
import liquibase.database.Database;
import liquibase.ext.ora.check.CheckAttribute;
import liquibase.ext.ora.enableconstraint.EnableConstraintChange;
import liquibase.statement.SqlStatement;
package liquibase.ext.ora.disableconstraint;


@DatabaseChange(name="disableConstraint", description = "Disable constraint", priority = ChangeMetaData.PRIORITY_DEFAULT + 200)
public class DisableConstraintChange extends CheckAttribute {

    public DisableConstraintChange() {
    }

    @Override
    public SqlStatement[] generateStatements(Database database) {

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

        DisableConstraintStatement statement = new DisableConstraintStatement(schemaName, getTableName(),
                getConstraintName());
        statement.setTablespace(getTablespace());
        return new SqlStatement[]{statement};
    }

    @Override
    public String getConfirmationMessage() {

        return "constraint " + getConstraintName() + " DISABLED in " + getTableName();
    }

    @Override
    protected Change[] createInverses() {
// Path: src/main/java/liquibase/ext/ora/check/CheckAttribute.java
// public abstract class CheckAttribute extends AbstractChange {
// 
//     private String tableName;
//     private String tablespace;
//     private String schemaName;
//     private String constraintName;
//     private String condition;
//     private Boolean disable;
//     private Boolean deferrable;
//     private Boolean initiallyDeferred;
//     private Boolean rely;
//     private Boolean validate;
// 
//     public void setTableName(String tableName) {
//         this.tableName = tableName;
//     }
// 
//     public String getTableName() {
//         return tableName;
//     }
// 
//     public void setTablespace(String tablespace) {
//         this.tablespace = tablespace;
//     }
// 
//     public String getTablespace() {
//         return tablespace;
//     }
// 
//     public String getSchemaName() {
//         return schemaName;
//     }
// 
//     public void setSchemaName(String schemaName) {
//         this.schemaName = StringUtil.trimToNull(schemaName);
//     }
// 
//     public void setConstraintName(String constraintName) {
//         this.constraintName = constraintName;
//     }
// 
//     public String getConstraintName() {
//         return constraintName;
//     }
// 
//     public String getCondition() {
//         return condition;
//     }
// 
//     public void setCondition(String condition) {
//         this.condition = condition;
//     }
// 
//     public Boolean getDisable() {
//         return disable;
//     }
// 
//     public void setDisable(Boolean disable) {
//         this.disable = disable;
//     }
// 
//     public Boolean getDeferrable() {
//         return deferrable;
//     }
// 
//     public void setDeferrable(Boolean deferrable) {
//         this.deferrable = deferrable;
//     }
// 
//     public Boolean getInitiallyDeferred() {
//         return initiallyDeferred;
//     }
// 
//     public void setInitiallyDeferred(Boolean initiallyDeferred) {
//         this.initiallyDeferred = initiallyDeferred;
//     }
// 
//     public Boolean getValidate() {
//         return validate;
//     }
// 
//     public void setValidate(Boolean validate) {
//         this.validate = validate;
//     }
// 
//     public Boolean getRely() {
//         return rely;
//     }
// 
//     public void setRely(Boolean rely) {
//         this.rely = rely;
//     }
// 
//     public SqlStatement[] generateStatements(Database database) {
// 
//         return null;
//     }
// 
//     public String getConfirmationMessage() {
//         return null;
//     }
// 
// }
// 
// Path: src/main/java/liquibase/ext/ora/enableconstraint/EnableConstraintChange.java
// @DatabaseChange(name="enableConstraint", description = "Enable constraint", priority = ChangeMetaData.PRIORITY_DEFAULT + 200)
// public class EnableConstraintChange extends CheckAttribute {
// 
//     public EnableConstraintChange() {
//     }
// 
//     @Override
//     public SqlStatement[] generateStatements(Database database) {
// 
//         String schemaName = getSchemaName() == null ? database.getDefaultSchemaName() : getSchemaName();
// 
//         EnableConstraintStatement statement = new EnableConstraintStatement(getTableName(), schemaName, getConstraintName());
//         statement.setTablespace(getTablespace());
// 
//         return new SqlStatement[]{statement};
//     }
// 
//     @Override
//     public String getConfirmationMessage() {
//         return "Constraint " + getConstraintName() + " ENABLED in " + getTableName();
//     }
// 
//     @Override
//     protected Change[] createInverses() {
//         DisableConstraintChange inverse = new DisableConstraintChange();
//         inverse.setSchemaName(getSchemaName());
//         inverse.setTableName(getTableName());
//         inverse.setConstraintName(getConstraintName());
// 
//         return new Change[]{inverse};
//     }
// 
// }


// Path: src/main/java/liquibase/ext/ora/disableconstraint/DisableConstraintChange.java
import liquibase.change.Change;
import liquibase.change.ChangeMetaData;
import liquibase.change.DatabaseChange;
import liquibase.database.Database;
import liquibase.ext.ora.check.CheckAttribute;
import liquibase.ext.ora.enableconstraint.EnableConstraintChange;
import liquibase.statement.SqlStatement;

package liquibase.ext.ora.disableconstraint;


@DatabaseChange(name="disableConstraint", description = "Disable constraint", priority = ChangeMetaData.PRIORITY_DEFAULT + 200)
public class DisableConstraintChange extends CheckAttribute {

    public DisableConstraintChange() {
    }

    @Override
    public SqlStatement[] generateStatements(Database database) {

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

        DisableConstraintStatement statement = new DisableConstraintStatement(schemaName, getTableName(),
                getConstraintName());
        statement.setTablespace(getTablespace());
        return new SqlStatement[]{statement};
    }

    @Override
    public String getConfirmationMessage() {

        return "constraint " + getConstraintName() + " DISABLED in " + getTableName();
    }

    @Override
    protected Change[] createInverses() {
        EnableConstraintChange inverse = new EnableConstraintChange();