1 package liquibase.sqlgenerator.core; 2 3 import liquibase.database.Database; 4 import liquibase.exception.ValidationErrors; 5 import liquibase.sql.Sql; 6 import liquibase.sql.UnparsedSql; 7 import liquibase.sqlgenerator.SqlGenerator; 8 import liquibase.sqlgenerator.SqlGeneratorChain; 9 import liquibase.statement.StoredProcedureStatement; 10 11 public class StoredProcedureGenerator extends AbstractSqlGenerator<StoredProcedureStatement> { 12 13 public ValidationErrors validate(StoredProcedureStatement storedProcedureStatement, Database database, 14 SqlGeneratorChain sqlGeneratorChain) { 15 ValidationErrors validationErrors = new ValidationErrors(); 16 validationErrors.checkRequiredField("procedureName", storedProcedureStatement.getProcedureName()); 17 return validationErrors; 18 } 19 20 public Sql[] generateSql(StoredProcedureStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) { 21 StringBuffer string = new StringBuffer(); 22 string.append("exec (").append(statement.getProcedureName()); 23 for (String param : statement.getParameters()) { 24 string.append(" ").append(param).append(","); 25 } 26 return new Sql[] { new UnparsedSql(string.toString().replaceFirst(",$", ")")) }; 27 28 } 29 }