package net.jforum.core.support.hibernate; import java.io.Serializable; import java.sql.Connection; import java.util.Map; import java.util.Set; import javax.naming.NamingException; import javax.naming.Reference; import org.hibernate.HibernateException; import org.hibernate.Interceptor; import org.hibernate.SessionFactory; import org.hibernate.StatelessSession; import org.hibernate.classic.Session; import org.hibernate.engine.FilterDefinition; import org.hibernate.metadata.ClassMetadata; import org.hibernate.metadata.CollectionMetadata; import org.hibernate.stat.Statistics; import org.springframework.context.ApplicationContext; /** * @author Rafael Steil */ public class SpringSessionFactory implements SessionFactory { private final ApplicationContext applicationContext; private final SessionFactory original; public SpringSessionFactory(ApplicationContext applicationContext, SessionFactory original) { this.original = original; this.applicationContext = applicationContext; } @Override public Session openSession() throws HibernateException { return original.openSession(new SpringInterceptor(this.applicationContext, original)); } @Override public Session openSession(Connection connection) { return original.openSession(connection, new SpringInterceptor(this.applicationContext, original)); } @Override public Session openSession(Interceptor interceptor) throws HibernateException { return original.openSession(interceptor); } @Override public Session openSession(Connection connection, Interceptor interceptor) { return original.openSession(connection, interceptor); } @Override public Session getCurrentSession() throws HibernateException { return original.getCurrentSession(); } @Override @SuppressWarnings("rawtypes") public ClassMetadata getClassMetadata(Class aClass) throws HibernateException { return original.getClassMetadata(aClass); } @Override public ClassMetadata getClassMetadata(String s) throws HibernateException { return original.getClassMetadata(s); } @Override public CollectionMetadata getCollectionMetadata(String s) throws HibernateException { return original.getCollectionMetadata(s); } @Override @SuppressWarnings("rawtypes") public Map getAllClassMetadata() throws HibernateException { return original.getAllClassMetadata(); } @Override @SuppressWarnings("rawtypes") public Map getAllCollectionMetadata() throws HibernateException { return original.getAllCollectionMetadata(); } @Override public Statistics getStatistics() { return original.getStatistics(); } @Override public void close() throws HibernateException { original.close(); } @Override public boolean isClosed() { return original.isClosed(); } @Override @SuppressWarnings("rawtypes") public void evict(Class aClass) throws HibernateException { original.evict(aClass); } @Override @SuppressWarnings("rawtypes") public void evict(Class aClass, Serializable serializable) throws HibernateException { original.evict(aClass, serializable); } @Override public void evictEntity(String s) throws HibernateException { original.evictEntity(s); } @Override public void evictEntity(String s, Serializable serializable) throws HibernateException { original.evictEntity(s, serializable); } @Override public void evictCollection(String s) throws HibernateException { original.evictCollection(s); } @Override public void evictCollection(String s, Serializable serializable) throws HibernateException { original.evictCollection(s, serializable); } @Override public void evictQueries() throws HibernateException { original.evictQueries(); } @Override public void evictQueries(String s) throws HibernateException { original.evictQueries(s); } @Override public StatelessSession openStatelessSession() { return original.openStatelessSession(); } @Override public StatelessSession openStatelessSession(Connection connection) { return original.openStatelessSession(connection); } @Override public Set<?> getDefinedFilterNames() { return original.getDefinedFilterNames(); } @Override public FilterDefinition getFilterDefinition(String s) throws HibernateException { return original.getFilterDefinition(s); } @Override public Reference getReference() throws NamingException { return original.getReference(); } }