/**
*
*/
package net.conselldemallorca.helium.jbpm3.spring;
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 javax.persistence.EntityManager;
import org.hibernate.Cache;
import org.hibernate.HibernateException;
import org.hibernate.Interceptor;
import org.hibernate.SessionFactory;
import org.hibernate.StatelessSession;
import org.hibernate.TypeHelper;
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;
/**
* SessionFactory per a fer feina amb l'EntityManager.
*
* @author Limit Tecnologies <limit@limit.es>
*/
@SuppressWarnings({"serial", "rawtypes", "deprecation"})
public class JbpmSessionFactory implements SessionFactory {
private SessionFactory delegate;
private EntityManager entityManager;
public JbpmSessionFactory(
SessionFactory delegate,
EntityManager entityManager) {
this.delegate = delegate;
this.entityManager = entityManager;
}
public Reference getReference() throws NamingException {
return delegate.getReference();
}
public Session openSession() throws HibernateException {
return delegate.openSession();
}
public Session getCurrentSession() throws HibernateException {
return (Session)entityManager.getDelegate();
}
public ClassMetadata getClassMetadata(Class persistentClass)
throws HibernateException {
return delegate.getClassMetadata(persistentClass);
}
public ClassMetadata getClassMetadata(String entityName)
throws HibernateException {
return delegate.getClassMetadata(entityName);
}
public CollectionMetadata getCollectionMetadata(String roleName)
throws HibernateException {
return delegate.getCollectionMetadata(roleName);
}
public Map<String,ClassMetadata> getAllClassMetadata() throws HibernateException {
return delegate.getAllClassMetadata();
}
public Map getAllCollectionMetadata() throws HibernateException {
return delegate.getAllCollectionMetadata();
}
public Statistics getStatistics() {
return delegate.getStatistics();
}
public void close() throws HibernateException {
delegate.close();
}
public boolean isClosed() {
return delegate.isClosed();
}
public void evict(Class persistentClass) throws HibernateException {
delegate.evict(persistentClass);
}
public void evict(Class persistentClass, Serializable id)
throws HibernateException {
delegate.evict(persistentClass, id);
}
public void evictEntity(String entityName) throws HibernateException {
delegate.evictEntity(entityName);
}
public void evictEntity(String entityName, Serializable id)
throws HibernateException {
delegate.evictEntity(entityName, id);
}
public void evictCollection(String roleName) throws HibernateException {
delegate.evictCollection(roleName);
}
public void evictCollection(String roleName, Serializable id)
throws HibernateException {
delegate.evictCollection(roleName, id);
}
public void evictQueries() throws HibernateException {
delegate.evictQueries();
}
public void evictQueries(String cacheRegion) throws HibernateException {
delegate.evictQueries(cacheRegion);
}
public StatelessSession openStatelessSession() {
return delegate.openStatelessSession();
}
public StatelessSession openStatelessSession(Connection connection) {
return delegate.openStatelessSession(connection);
}
public Set getDefinedFilterNames() {
return delegate.getDefinedFilterNames();
}
public FilterDefinition getFilterDefinition(String filterName)
throws HibernateException {
return delegate.getFilterDefinition(filterName);
}
public Cache getCache() {
return delegate.getCache();
}
public boolean containsFetchProfileDefinition(String name) {
return delegate.containsFetchProfileDefinition(name);
}
public TypeHelper getTypeHelper() {
return delegate.getTypeHelper();
}
public Session openSession(Interceptor interceptor)
throws HibernateException {
return delegate.openSession(interceptor);
}
public Session openSession(Connection connection) {
return delegate.openSession(connection);
}
public Session openSession(Connection connection, Interceptor interceptor) {
return delegate.openSession(connection, interceptor);
}
}