package liquibase.ext.ora.grant.revokegrant;
import liquibase.database.Database;
import liquibase.database.core.OracleDatabase;
import liquibase.exception.ValidationErrors;
import liquibase.sql.Sql;
import liquibase.sql.UnparsedSql;
import liquibase.sqlgenerator.SqlGeneratorChain;
import liquibase.sqlgenerator.core.AbstractSqlGenerator;
public class RevokeObjectPermissionGenerator extends AbstractSqlGenerator<RevokeObjectPermissionStatement> {
@Override
public Sql[] generateSql(RevokeObjectPermissionStatement statement, Database database,
SqlGeneratorChain sqlGeneratorChain) {
StringBuilder sql = new StringBuilder();
sql.append("REVOKE ");
sql.append( statement.getPermissionList() );
sql.append( " ON " );
sql.append(database.escapeTableName(null, statement.getSchemaName(), statement.getObjectName()));
sql.append( " FROM " );
sql.append( statement.getRecipientList() );
return new Sql[]{new UnparsedSql(sql.toString())};
}
@Override
public boolean supports(RevokeObjectPermissionStatement statement,
Database database) {
return database instanceof OracleDatabase;
}
@Override
public ValidationErrors validate(RevokeObjectPermissionStatement statement,
Database database, SqlGeneratorChain sqlGeneratorChain) {
return statement.validate();
}
}