package org.aplikator.server.persistence.empiredb;
import java.sql.Connection;
import org.apache.empire.db.DBCmdType;
import org.apache.empire.db.DBCommand;
import org.apache.empire.db.DBDatabase;
import org.apache.empire.db.DBDatabaseDriver;
import org.apache.empire.db.DBSQLScript;
import org.apache.empire.exceptions.MiscellaneousErrorException;
import org.aplikator.server.persistence.empiredb.oracle.EmpireDriverOracle;
public class EmpireDatabase extends DBDatabase {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public DBCommand createCommand() {
// if (this.getDriver() instanceof DBDatabaseDriverOracle) {
// return new EmpireCommandOracle(this);
// } else {
return super.createCommand();
// }
}
public synchronized void getCreateDDLScript(DBCmdType type, DBDatabaseDriver driver, DBSQLScript script, Connection conn) {
DBDatabaseDriver prevDriver = this.driver;
try {
// Set driver
if (this.driver != null && this.driver != driver && driver != null) { // The database belongs to a different driver
throw new MiscellaneousErrorException("The database is attached to a different driver.");
}
// Temporarily change driver
if (this.driver == null)
this.driver = driver;
// Get DDL Command
if (driver instanceof EmpireDriverOracle) {
((EmpireDriverOracle) driver).getDDLScript(type, this, script, conn);
} else {
driver.getDDLScript(type, this, script);
}
} finally {
this.driver = prevDriver;
}
}
}