package org.mifos.framework.hibernate.helper;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import java.sql.Connection;
import java.util.Properties;
@SuppressWarnings("PMD")
public class TestHibernateUtil extends HibernateUtil {
private HibernateUtil hibernateUtil;
public TestHibernateUtil(HibernateUtil hibernateUtil) {
super(null, null);
this.hibernateUtil = hibernateUtil;
}
@Override
public void commitTransaction() {
hibernateUtil.flushSession();
}
@Override
public void closeSession() {
}
@Override
public Properties getHibernateProperties() {
return hibernateUtil.getHibernateProperties();
}
@Override
public SessionFactory getSessionFactory() {
return hibernateUtil.getSessionFactory();
}
@Override
public Session getSessionTL() {
return hibernateUtil.getSessionTL();
}
@Override
public Object getInterceptor() {
return hibernateUtil.getInterceptor();
}
@Override
public Transaction startTransaction() {
return hibernateUtil.startTransaction();
}
@Override
public void flushSession() {
if (hibernateUtil.getSessionTL().isOpen()) {
hibernateUtil.flushSession();
}
}
@Override
public void flushAndCloseSession() {
if (hibernateUtil.getSessionTL().isOpen()) {
hibernateUtil.flushSession();
}
}
@Override
public void flushAndClearSession() {
if (hibernateUtil.getSessionTL().isOpen()) {
hibernateUtil.flushAndClearSession();
}
}
@Override
public void rollbackTransaction() {
hibernateUtil.rollbackTransaction();
}
@Override
public HibernateUtil getObject() throws Exception {
return hibernateUtil.getObject();
}
@Override
public Class<?> getObjectType() {
return hibernateUtil.getObjectType();
}
@Override
public boolean isSingleton() {
return hibernateUtil.isSingleton();
}
@Override
public void clearSession() {
hibernateUtil.clearSession();
}
@Override
public Connection getConnection() {
Connection connection = super.getConnection();
return new TestDbConnection(connection);
}
}