[420997] - Make HbBaseSessionDataStore to implement org.hibernate.engine.SessionFactoryImplementor
diff --git a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbBaseSessionDataStore.java b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbBaseSessionDataStore.java
index 58994f7..d062be8 100755
--- a/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbBaseSessionDataStore.java
+++ b/hibernate/org.eclipse.emf.teneo.hibernate/src/org/eclipse/emf/teneo/hibernate/HbBaseSessionDataStore.java
@@ -19,21 +19,55 @@
import java.io.Serializable;
import java.sql.Connection;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
import javax.naming.NamingException;
import javax.naming.Reference;
+import org.hibernate.Cache;
+import org.hibernate.CustomEntityDirtinessStrategy;
import org.hibernate.HibernateException;
import org.hibernate.Interceptor;
+import org.hibernate.MappingException;
import org.hibernate.Session;
+import org.hibernate.SessionBuilder;
import org.hibernate.SessionFactory;
+import org.hibernate.SessionFactoryObserver;
import org.hibernate.StatelessSession;
+import org.hibernate.StatelessSessionBuilder;
+import org.hibernate.TypeHelper;
+import org.hibernate.cache.spi.QueryCache;
+import org.hibernate.cache.spi.Region;
+import org.hibernate.cache.spi.UpdateTimestampsCache;
+import org.hibernate.cfg.Settings;
+import org.hibernate.context.spi.CurrentTenantIdentifierResolver;
+import org.hibernate.dialect.Dialect;
+import org.hibernate.dialect.function.SQLFunctionRegistry;
+import org.hibernate.engine.ResultSetMappingDefinition;
+import org.hibernate.engine.jdbc.spi.JdbcServices;
+import org.hibernate.engine.jdbc.spi.SqlExceptionHelper;
+import org.hibernate.engine.profile.FetchProfile;
+import org.hibernate.engine.query.spi.QueryPlanCache;
import org.hibernate.engine.spi.FilterDefinition;
+import org.hibernate.engine.spi.NamedQueryDefinition;
+import org.hibernate.engine.spi.NamedSQLQueryDefinition;
+import org.hibernate.engine.spi.SessionFactoryImplementor;
+import org.hibernate.exception.spi.SQLExceptionConverter;
+import org.hibernate.id.IdentifierGenerator;
+import org.hibernate.id.factory.IdentifierGeneratorFactory;
import org.hibernate.internal.SessionFactoryImpl;
import org.hibernate.metadata.ClassMetadata;
import org.hibernate.metadata.CollectionMetadata;
+import org.hibernate.persister.collection.CollectionPersister;
+import org.hibernate.persister.entity.EntityPersister;
+import org.hibernate.proxy.EntityNotFoundDelegate;
+import org.hibernate.service.jdbc.connections.spi.ConnectionProvider;
+import org.hibernate.service.spi.ServiceRegistryImplementor;
import org.hibernate.stat.Statistics;
+import org.hibernate.stat.spi.StatisticsImplementor;
+import org.hibernate.type.Type;
+import org.hibernate.type.TypeResolver;
/**
* Holds the sessionfactory related methods, makes the HbSessionDataStore better readable.
@@ -41,7 +75,8 @@
* @author <a href="mailto:mtaal@elver.org">Martin Taal</a>
* @version $Revision: 1.11 $
*/
-public abstract class HbBaseSessionDataStore extends HbDataStore implements SessionFactory {
+public abstract class HbBaseSessionDataStore extends HbDataStore implements SessionFactory,
+ SessionFactoryImplementor {
private static final long serialVersionUID = 1L;
@@ -207,4 +242,194 @@
public StatelessSession openStatelessSession(Connection connection) {
return getSessionFactory().openStatelessSession(connection);
}
+
+ protected SessionFactoryImplementor getSessionFactoryImplementor() {
+ return (SessionFactoryImplementor) getSessionFactory();
+ }
+
+ public void addObserver(SessionFactoryObserver arg0) {
+ getSessionFactoryImplementor().addObserver(arg0);
+ }
+
+ public boolean containsFetchProfileDefinition(String arg0) {
+ return getSessionFactoryImplementor().containsFetchProfileDefinition(arg0);
+ }
+
+ @SuppressWarnings("rawtypes")
+ public Map getAllSecondLevelCacheRegions() {
+ return getSessionFactoryImplementor().getAllSecondLevelCacheRegions();
+ }
+
+ public Cache getCache() {
+ return getSessionFactoryImplementor().getCache();
+ }
+
+ public CollectionPersister getCollectionPersister(String arg0) throws MappingException {
+ return getSessionFactoryImplementor().getCollectionPersister(arg0);
+ }
+
+ public Set<String> getCollectionRolesByEntityParticipant(String arg0) {
+ return getSessionFactoryImplementor().getCollectionRolesByEntityParticipant(arg0);
+ }
+
+ public ConnectionProvider getConnectionProvider() {
+ return getSessionFactoryImplementor().getConnectionProvider();
+ }
+
+ public CurrentTenantIdentifierResolver getCurrentTenantIdentifierResolver() {
+ return getSessionFactoryImplementor().getCurrentTenantIdentifierResolver();
+ }
+
+ public CustomEntityDirtinessStrategy getCustomEntityDirtinessStrategy() {
+ return getSessionFactoryImplementor().getCustomEntityDirtinessStrategy();
+ }
+
+ public Dialect getDialect() {
+ return getSessionFactoryImplementor().getDialect();
+ }
+
+ public EntityNotFoundDelegate getEntityNotFoundDelegate() {
+ return getSessionFactoryImplementor().getEntityNotFoundDelegate();
+ }
+
+ public EntityPersister getEntityPersister(String arg0) throws MappingException {
+ return getSessionFactoryImplementor().getEntityPersister(arg0);
+ }
+
+ public FetchProfile getFetchProfile(String arg0) {
+ return getSessionFactoryImplementor().getFetchProfile(arg0);
+ }
+
+ public IdentifierGenerator getIdentifierGenerator(String arg0) {
+ return getSessionFactoryImplementor().getIdentifierGenerator(arg0);
+ }
+
+ @Deprecated
+ public IdentifierGeneratorFactory getIdentifierGeneratorFactory() {
+ return getSessionFactoryImplementor().getIdentifierGeneratorFactory();
+ }
+
+ public String getIdentifierPropertyName(String arg0) throws MappingException {
+ return getSessionFactoryImplementor().getIdentifierPropertyName(arg0);
+ }
+
+ public Type getIdentifierType(String arg0) throws MappingException {
+ return getSessionFactoryImplementor().getIdentifierType(arg0);
+ }
+
+ public String[] getImplementors(String arg0) throws MappingException {
+ return getSessionFactoryImplementor().getImplementors(arg0);
+ }
+
+ public String getImportedClassName(String arg0) {
+ return getSessionFactoryImplementor().getImportedClassName(arg0);
+ }
+
+ public Interceptor getInterceptor() {
+ return getSessionFactoryImplementor().getInterceptor();
+ }
+
+ public JdbcServices getJdbcServices() {
+ return getSessionFactoryImplementor().getJdbcServices();
+ }
+
+ public NamedQueryDefinition getNamedQuery(String arg0) {
+ return getSessionFactoryImplementor().getNamedQuery(arg0);
+ }
+
+ public NamedSQLQueryDefinition getNamedSQLQuery(String arg0) {
+ return getSessionFactoryImplementor().getNamedSQLQuery(arg0);
+ }
+
+ public Region getNaturalIdCacheRegion(String arg0) {
+ return getSessionFactoryImplementor().getNaturalIdCacheRegion(arg0);
+ }
+
+ public Properties getProperties() {
+ return getSessionFactoryImplementor().getProperties();
+ }
+
+ public QueryCache getQueryCache() {
+ return getSessionFactoryImplementor().getQueryCache();
+ }
+
+ public QueryCache getQueryCache(String arg0) throws HibernateException {
+ return getSessionFactoryImplementor().getQueryCache(arg0);
+ }
+
+ public QueryPlanCache getQueryPlanCache() {
+ return getSessionFactoryImplementor().getQueryPlanCache();
+ }
+
+ public Type getReferencedPropertyType(String arg0, String arg1) throws MappingException {
+ return getSessionFactoryImplementor().getReferencedPropertyType(arg0, arg1);
+ }
+
+ public ResultSetMappingDefinition getResultSetMapping(String arg0) {
+ return getSessionFactoryImplementor().getResultSetMapping(arg0);
+ }
+
+ public String[] getReturnAliases(String arg0) throws HibernateException {
+ return getSessionFactoryImplementor().getReturnAliases(arg0);
+ }
+
+ public Type[] getReturnTypes(String arg0) throws HibernateException {
+ return getSessionFactoryImplementor().getReturnTypes(arg0);
+ }
+
+ public SQLExceptionConverter getSQLExceptionConverter() {
+ return getSessionFactoryImplementor().getSQLExceptionConverter();
+ }
+
+ public SqlExceptionHelper getSQLExceptionHelper() {
+ return getSessionFactoryImplementor().getSQLExceptionHelper();
+ }
+
+ public Region getSecondLevelCacheRegion(String arg0) {
+ return getSessionFactoryImplementor().getSecondLevelCacheRegion(arg0);
+ }
+
+ public ServiceRegistryImplementor getServiceRegistry() {
+ return getSessionFactoryImplementor().getServiceRegistry();
+ }
+
+ public SessionFactoryOptions getSessionFactoryOptions() {
+ return getSessionFactoryImplementor().getSessionFactoryOptions();
+ }
+
+ public Settings getSettings() {
+ return getSessionFactoryImplementor().getSettings();
+ }
+
+ public SQLFunctionRegistry getSqlFunctionRegistry() {
+ return getSessionFactoryImplementor().getSqlFunctionRegistry();
+ }
+
+ public StatisticsImplementor getStatisticsImplementor() {
+ return getSessionFactoryImplementor().getStatisticsImplementor();
+ }
+
+ public TypeHelper getTypeHelper() {
+ return getSessionFactoryImplementor().getTypeHelper();
+ }
+
+ public TypeResolver getTypeResolver() {
+ return getSessionFactoryImplementor().getTypeResolver();
+ }
+
+ public UpdateTimestampsCache getUpdateTimestampsCache() {
+ return getSessionFactoryImplementor().getUpdateTimestampsCache();
+ }
+
+ public Session openTemporarySession() throws HibernateException {
+ return getSessionFactoryImplementor().openTemporarySession();
+ }
+
+ public SessionBuilder withOptions() {
+ return getSessionFactoryImplementor().withOptions();
+ }
+
+ public StatelessSessionBuilder withStatelessOptions() {
+ return getSessionFactoryImplementor().withStatelessOptions();
+ }
}
\ No newline at end of file