/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* Copyright (c) 2008-2011, Red Hat Inc. or third-party contributors as
* indicated by the @author tags or express copyright attribution
* statements applied by the authors. All third-party contributions are
* distributed under license by Red Hat Inc.
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU
* Lesser General Public License, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this distribution; if not, write to:
* Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301 USA
*/
package org.hibernate.envers.entities.mapper.relation.lazy;
import java.io.Serializable;
import java.sql.Connection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.hibernate.CacheMode;
import org.hibernate.FlushMode;
import org.hibernate.HibernateException;
import org.hibernate.Interceptor;
import org.hibernate.Query;
import org.hibernate.ScrollMode;
import org.hibernate.ScrollableResults;
import org.hibernate.cache.spi.CacheKey;
import org.hibernate.collection.spi.PersistentCollection;
import org.hibernate.engine.spi.EntityKey;
import org.hibernate.engine.spi.LoadQueryInfluencers;
import org.hibernate.engine.spi.NonFlushedChanges;
import org.hibernate.engine.spi.PersistenceContext;
import org.hibernate.engine.spi.QueryParameters;
import org.hibernate.engine.spi.SessionFactoryImplementor;
import org.hibernate.engine.spi.SessionImplementor;
import org.hibernate.engine.jdbc.spi.JdbcConnectionAccess;
import org.hibernate.engine.query.spi.sql.NativeSQLQuerySpecification;
import org.hibernate.engine.transaction.spi.TransactionCoordinator;
import org.hibernate.internal.CriteriaImpl;
import org.hibernate.loader.custom.CustomQuery;
import org.hibernate.persister.entity.EntityPersister;
import org.hibernate.type.Type;
/**
* @author Adam Warski (adam at warski dot org)
*/
@SuppressWarnings( {"deprecation"})
public abstract class AbstractDelegateSessionImplementor implements SessionImplementor {
protected SessionImplementor delegate;
public AbstractDelegateSessionImplementor(SessionImplementor delegate) {
this.delegate = delegate;
}
public abstract Object doImmediateLoad(String entityName);
@Override
public Object immediateLoad(String entityName, Serializable id) throws HibernateException {
return doImmediateLoad(entityName);
}
// Delegate methods
@Override
public String getTenantIdentifier() {
return delegate.getTenantIdentifier();
}
@Override
public JdbcConnectionAccess getJdbcConnectionAccess() {
return delegate.getJdbcConnectionAccess();
}
@Override
public EntityKey generateEntityKey(Serializable id, EntityPersister persister) {
return delegate.generateEntityKey( id, persister );
}
@Override
public CacheKey generateCacheKey(Serializable id, Type type, String entityOrRoleName) {
return delegate.generateCacheKey( id, type, entityOrRoleName );
}
@Override
public <T> T execute(Callback<T> callback) {
return delegate.execute( callback );
}
@Override
public LoadQueryInfluencers getLoadQueryInfluencers() {
return delegate.getLoadQueryInfluencers();
}
@Override
public Interceptor getInterceptor() {
return delegate.getInterceptor();
}
@Override
public void setAutoClear(boolean enabled) {
delegate.setAutoClear(enabled);
}
@Override
public void disableTransactionAutoJoin() {
delegate.disableTransactionAutoJoin();
}
@Override
public boolean isTransactionInProgress() {
return delegate.isTransactionInProgress();
}
@Override
public void initializeCollection(PersistentCollection collection, boolean writing) throws HibernateException {
delegate.initializeCollection(collection, writing);
}
@Override
public Object internalLoad(String entityName, Serializable id, boolean eager, boolean nullable) throws HibernateException {
return delegate.internalLoad(entityName, id, eager, nullable);
}
@Override
public long getTimestamp() {
return delegate.getTimestamp();
}
@Override
public SessionFactoryImplementor getFactory() {
return delegate.getFactory();
}
@Override
public List list(String query, QueryParameters queryParameters) throws HibernateException {
return delegate.list(query, queryParameters);
}
@Override
public Iterator iterate(String query, QueryParameters queryParameters) throws HibernateException {
return delegate.iterate(query, queryParameters);
}
@Override
public ScrollableResults scroll(String query, QueryParameters queryParameters) throws HibernateException {
return delegate.scroll(query, queryParameters);
}
@Override
public ScrollableResults scroll(CriteriaImpl criteria, ScrollMode scrollMode) {
return delegate.scroll(criteria, scrollMode);
}
@Override
public List list(CriteriaImpl criteria) {
return delegate.list(criteria);
}
@Override
public List listFilter(Object collection, String filter, QueryParameters queryParameters) throws HibernateException {
return delegate.listFilter(collection, filter, queryParameters);
}
@Override
public Iterator iterateFilter(Object collection, String filter, QueryParameters queryParameters) throws HibernateException {
return delegate.iterateFilter(collection, filter, queryParameters);
}
@Override
public EntityPersister getEntityPersister(String entityName, Object object) throws HibernateException {
return delegate.getEntityPersister(entityName, object);
}
@Override
public Object getEntityUsingInterceptor(EntityKey key) throws HibernateException {
return delegate.getEntityUsingInterceptor(key);
}
@Override
public Serializable getContextEntityIdentifier(Object object) {
return delegate.getContextEntityIdentifier(object);
}
@Override
public String bestGuessEntityName(Object object) {
return delegate.bestGuessEntityName(object);
}
@Override
public String guessEntityName(Object entity) throws HibernateException {
return delegate.guessEntityName(entity);
}
@Override
public Object instantiate(String entityName, Serializable id) throws HibernateException {
return delegate.instantiate(entityName, id);
}
@Override
public List listCustomQuery(CustomQuery customQuery, QueryParameters queryParameters) throws HibernateException {
return delegate.listCustomQuery(customQuery, queryParameters);
}
@Override
public ScrollableResults scrollCustomQuery(CustomQuery customQuery, QueryParameters queryParameters) throws HibernateException {
return delegate.scrollCustomQuery(customQuery, queryParameters);
}
@Override
public List list(NativeSQLQuerySpecification spec, QueryParameters queryParameters) throws HibernateException {
return delegate.list(spec, queryParameters);
}
@Override
public ScrollableResults scroll(NativeSQLQuerySpecification spec, QueryParameters queryParameters) throws HibernateException {
return delegate.scroll(spec, queryParameters);
}
@Override
public Object getFilterParameterValue(String filterParameterName) {
return delegate.getFilterParameterValue(filterParameterName);
}
@Override
public Type getFilterParameterType(String filterParameterName) {
return delegate.getFilterParameterType(filterParameterName);
}
@Override
public Map getEnabledFilters() {
return delegate.getEnabledFilters();
}
@Override
public int getDontFlushFromFind() {
return delegate.getDontFlushFromFind();
}
@Override
public PersistenceContext getPersistenceContext() {
return delegate.getPersistenceContext();
}
@Override
public int executeUpdate(String query, QueryParameters queryParameters) throws HibernateException {
return delegate.executeUpdate(query, queryParameters);
}
@Override
public int executeNativeUpdate(NativeSQLQuerySpecification specification, QueryParameters queryParameters) throws HibernateException {
return delegate.executeNativeUpdate(specification, queryParameters);
}
@Override
public NonFlushedChanges getNonFlushedChanges() throws HibernateException {
return delegate.getNonFlushedChanges();
}
@Override
public void applyNonFlushedChanges(NonFlushedChanges nonFlushedChanges) throws HibernateException {
delegate.applyNonFlushedChanges( nonFlushedChanges );
}
@Override
public CacheMode getCacheMode() {
return delegate.getCacheMode();
}
@Override
public void setCacheMode(CacheMode cm) {
delegate.setCacheMode(cm);
}
@Override
public boolean isOpen() {
return delegate.isOpen();
}
@Override
public boolean isConnected() {
return delegate.isConnected();
}
@Override
public FlushMode getFlushMode() {
return delegate.getFlushMode();
}
@Override
public void setFlushMode(FlushMode fm) {
delegate.setFlushMode(fm);
}
@Override
public Connection connection() {
return delegate.connection();
}
@Override
public void flush() {
delegate.flush();
}
@Override
public Query getNamedQuery(String name) {
return delegate.getNamedQuery(name);
}
@Override
public Query getNamedSQLQuery(String name) {
return delegate.getNamedSQLQuery(name);
}
@Override
public boolean isEventSource() {
return delegate.isEventSource();
}
@Override
public void afterScrollOperation() {
delegate.afterScrollOperation();
}
@Override
public void setFetchProfile(String name) {
delegate.setFetchProfile(name);
}
@Override
public String getFetchProfile() {
return delegate.getFetchProfile();
}
@Override
public TransactionCoordinator getTransactionCoordinator() {
return delegate.getTransactionCoordinator();
}
@Override
public boolean isClosed() {
return delegate.isClosed();
}
}