package dbfit.fixture;
import dbfit.api.DBEnvironment;
import dbfit.api.DbEnvironmentFactory;
import dbfit.util.DdlStatementExecution;
import fit.Fixture;
import fit.Parse;
public class ExecuteDdl extends Fixture {
private String statementText;
private DBEnvironment dbEnvironment;
public ExecuteDdl() {
dbEnvironment = DbEnvironmentFactory.getDefaultEnvironment();
}
public ExecuteDdl(DBEnvironment env, String statement) {
this.statementText = statement;
this.dbEnvironment = env;
}
public void doRows(Parse rows) {
try (DdlStatementExecution ddl = createDdlExecution()) {
ddl.run();
} catch (Throwable e) {
throw new Error(e);
}
}
private String getStatementText() {
if (statementText == null) {
statementText = args[0];
}
return statementText;
}
private DdlStatementExecution createDdlExecution() throws Exception {
return dbEnvironment.createDdlStatementExecution(getStatementText());
}
}