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

liquibase.ext.ora.comment.CommentOnChange Maven / Gradle / Ivy

package liquibase.ext.ora.comment;

import liquibase.change.AbstractChange;
import liquibase.change.Change;
import liquibase.change.ChangeMetaData;
import liquibase.change.DatabaseChange;
import liquibase.database.Database;
import liquibase.statement.SqlStatement;


@DatabaseChange(name="commentOn", description = "Create or replace a comment on a table or a column", priority = ChangeMetaData.PRIORITY_DEFAULT + 200)
public class CommentOnChange extends AbstractChange {

    private String schemaName;
    private String tableName;
    private String columnName;
    private String comment;

    public CommentOnChange() {
    }

    public SqlStatement[] generateStatements(Database database) {

        String schemaName = getSchemaName() == null ? database.getDefaultSchemaName() : getSchemaName();
        CommentOnStatement statement = new CommentOnStatement(schemaName, getTableName(), getColumnName(), getComment() );
        return new SqlStatement[]{statement};
    }

    public String getConfirmationMessage() {
        return columnName == null
                ? "Comment has been added to " + getTableName()
                : "Comment has been added to " + getTableName() + "." + getColumnName();
    }

    // Since "COMMENT ON" replaces the existing comment is is not good to remove it as we don;t know what the last one was.
    protected Change[] createInverses() {
        return new Change[]{};
    }

    public String getSchemaName() {
        return schemaName;
    }

    public void setSchemaName(String schemaName) {
        this.schemaName = schemaName;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public String getColumnName() {
        return columnName;
    }

    public void setColumnName(String columnName) {
        this.columnName = columnName;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy