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

liquibase.ext.ora.grant.AbstractObjectPermissionStatement Maven / Gradle / Ivy

There is a newer version: 4.31.1
Show newest version
package liquibase.ext.ora.grant;

import java.util.ArrayList;
import java.util.List;

import liquibase.exception.ValidationErrors;
import liquibase.statement.AbstractSqlStatement;
import liquibase.util.StringUtils;

public abstract class AbstractObjectPermissionStatement extends
		AbstractSqlStatement {

	protected String schemaName;
	protected String objectName;
	protected String recipientList;
	private Boolean select = Boolean.FALSE;
	private Boolean update = Boolean.FALSE;
	private Boolean insert = Boolean.FALSE;
	private Boolean delete = Boolean.FALSE;
	private Boolean execute = Boolean.FALSE;

	public AbstractObjectPermissionStatement() {
		super();
	}

    public AbstractObjectPermissionStatement(String schemaName, String objectName,
			String recipientList) {
		this();
		this.schemaName = schemaName;
		this.objectName = objectName;
		this.recipientList = recipientList;
	}

	public String getSchemaName() {
		return schemaName;
	}

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

	public String getObjectName() {
		return objectName;
	}

	public void setObjectName(String objectName) {
		this.objectName = objectName;
	}

	public String getRecipientList() {
		return recipientList;
	}

	public void setRecipientList(String recipientList) {
		this.recipientList = recipientList;
	}

	public Boolean getSelect() {
		if ( select == null ) {
			return false;
		}
		return select;
	}

	public void setSelect(Boolean select) {
		this.select = select;
	}

	public Boolean getUpdate() {
		if ( update == null ) {
			return false;
		}
		return update;
	}

	public void setUpdate(Boolean update) {
		this.update = update;
	}

	public Boolean getInsert() {
		if ( insert == null ) {
			return false;
		}
		return insert;
	}

	public void setInsert(Boolean insert) {
		this.insert = insert;
	}

	public Boolean getDelete() {
		if ( delete == null ) {
			return false;
		}
		return delete;
	}

	public void setDelete(Boolean delete) {
		this.delete = delete;
	}

	public Boolean getExecute() {
		if ( execute == null ) {
			return false;
		}
		return execute;
	}

	public void setExecute(Boolean execute) {
		this.execute = execute;
	}

	public String getPermissionList() {
        List permissions = new ArrayList(5);
        if ( getSelect() ) {
        	permissions.add( "SELECT" );
        }
        if ( getUpdate() ) {
        	permissions.add( "UPDATE" );
        }
        if ( getInsert() ) {
        	permissions.add( "INSERT" );
        }
        if ( getDelete() ) {
        	permissions.add( "DELETE" );
        }
        if ( getExecute() ) {
        	permissions.add( "EXECUTE" );
        }
        return StringUtils.join(permissions, ",");
	}

	public ValidationErrors validate() {
        ValidationErrors validationErrors = new ValidationErrors();
        validationErrors.checkRequiredField("tableName", getObjectName());
        validationErrors.checkRequiredField("recipientList", getRecipientList());
        if ( !getSelect()
        		&& !getUpdate()
        		&& !getInsert()
        		&& !getDelete()
        		&& !getExecute()
        		) {
        	validationErrors.addError("You must specify at least one permission.");
        }
        return validationErrors;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy