package org.aperteworkflow.ext.activiti.wrappers;
import org.hibernate.Session;
import javax.sql.DataSource;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
/**
* @author tlipski@bluesoft.net.pl
*/
public class DataSourceWrapper implements DataSource {
private PrintWriter logWriter = new PrintWriter(System.out);
private int loginTimeout = 60;
private Session session;
public DataSourceWrapper(Session session) {
this.session = session;
}
@Override
public Connection getConnection() throws SQLException {
return new ConnectionWrapper(session.connection());
}
@Override
public Connection getConnection(String username, String password) throws SQLException {
return getConnection();
}
@Override
public PrintWriter getLogWriter() throws SQLException {
return logWriter; //To change body of implemented methods use File | Settings | File Templates.
}
@Override
public void setLogWriter(PrintWriter out) throws SQLException {
this.logWriter = out;
}
@Override
public void setLoginTimeout(int seconds) throws SQLException {
this.loginTimeout = seconds;
}
@Override
public int getLoginTimeout() throws SQLException {
return loginTimeout;
}
@Override
public <T> T unwrap(Class<T> iface) throws SQLException {
try {
return iface.newInstance();
} catch (InstantiationException e) {
throw new SQLException(e);
} catch (IllegalAccessException e) {
throw new SQLException(e);
}
}
@Override
public boolean isWrapperFor(Class<?> iface) throws SQLException {
return false;
}
}