/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.boot.spi;

import java.util.Collection;
import java.util.Map;
import java.util.Set;
import java.util.UUID;

import org.hibernate.MappingException;
import org.hibernate.SessionFactory;
import org.hibernate.boot.SessionFactoryBuilder;
import org.hibernate.boot.model.IdentifierGeneratorDefinition;
import org.hibernate.boot.model.TypeDefinition;
import org.hibernate.boot.model.relational.Database;
import org.hibernate.cache.cfg.internal.DomainDataRegionConfigImpl;
import org.hibernate.cfg.annotations.NamedEntityGraphDefinition;
import org.hibernate.cfg.annotations.NamedProcedureCallDefinition;
import org.hibernate.dialect.function.SQLFunction;
import org.hibernate.engine.ResultSetMappingDefinition;
import org.hibernate.engine.spi.FilterDefinition;
import org.hibernate.engine.spi.NamedQueryDefinition;
import org.hibernate.engine.spi.NamedSQLQueryDefinition;
import org.hibernate.id.factory.IdentifierGeneratorFactory;
import org.hibernate.internal.SessionFactoryImpl;
import org.hibernate.mapping.FetchProfile;
import org.hibernate.mapping.MappedSuperclass;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Table;
import org.hibernate.query.spi.NamedQueryRepository;
import org.hibernate.type.Type;
import org.hibernate.type.TypeResolver;
import org.hibernate.type.spi.TypeConfiguration;

Convenience base class for custom implementors of MetadataImplementor using delegation.
Author:Gunnar Morling
/** * Convenience base class for custom implementors of {@link MetadataImplementor} using delegation. * * @author Gunnar Morling * */
public abstract class AbstractDelegatingMetadata implements MetadataImplementor { private final MetadataImplementor delegate; public AbstractDelegatingMetadata(MetadataImplementor delegate) { this.delegate = delegate; } protected MetadataImplementor delegate() { return delegate; } @Override public IdentifierGeneratorFactory getIdentifierGeneratorFactory() { return delegate.getIdentifierGeneratorFactory(); } @Override public Type getIdentifierType(String className) throws MappingException { return delegate.getIdentifierType( className ); } @Override public String getIdentifierPropertyName(String className) throws MappingException { return delegate.getIdentifierPropertyName( className ); } @Override public Type getReferencedPropertyType(String className, String propertyName) throws MappingException { return delegate.getReferencedPropertyType( className, propertyName ); } @Override public SessionFactoryBuilder getSessionFactoryBuilder() { return delegate.getSessionFactoryBuilder(); } @Override public SessionFactory buildSessionFactory() { return delegate.buildSessionFactory(); } @Override public UUID getUUID() { return delegate.getUUID(); } @Override public Database getDatabase() { return delegate.getDatabase(); } @Override public Collection<PersistentClass> getEntityBindings() { return delegate.getEntityBindings(); } @Override public PersistentClass getEntityBinding(String entityName) { return delegate.getEntityBinding( entityName ); } @Override public Collection<org.hibernate.mapping.Collection> getCollectionBindings() { return delegate.getCollectionBindings(); } @Override public org.hibernate.mapping.Collection getCollectionBinding(String role) { return delegate.getCollectionBinding( role ); } @Override public Map<String, String> getImports() { return delegate.getImports(); } @Override public NamedQueryDefinition getNamedQueryDefinition(String name) { return delegate.getNamedQueryDefinition( name ); } @Override public Collection<NamedQueryDefinition> getNamedQueryDefinitions() { return delegate.getNamedQueryDefinitions(); } @Override public NamedSQLQueryDefinition getNamedNativeQueryDefinition(String name) { return delegate.getNamedNativeQueryDefinition( name ); } @Override public Collection<NamedSQLQueryDefinition> getNamedNativeQueryDefinitions() { return delegate.getNamedNativeQueryDefinitions(); } @Override public Collection<NamedProcedureCallDefinition> getNamedProcedureCallDefinitions() { return delegate.getNamedProcedureCallDefinitions(); } @Override public ResultSetMappingDefinition getResultSetMapping(String name) { return delegate.getResultSetMapping( name ); } @Override public Map<String, ResultSetMappingDefinition> getResultSetMappingDefinitions() { return delegate.getResultSetMappingDefinitions(); } @Override public TypeDefinition getTypeDefinition(String typeName) { return delegate.getTypeDefinition( typeName ); } @Override public Map<String, FilterDefinition> getFilterDefinitions() { return delegate.getFilterDefinitions(); } @Override public FilterDefinition getFilterDefinition(String name) { return delegate.getFilterDefinition( name ); } @Override public FetchProfile getFetchProfile(String name) { return delegate.getFetchProfile( name ); } @Override public Collection<FetchProfile> getFetchProfiles() { return delegate.getFetchProfiles(); } @Override public NamedEntityGraphDefinition getNamedEntityGraph(String name) { return delegate.getNamedEntityGraph( name ); } @Override public Map<String, NamedEntityGraphDefinition> getNamedEntityGraphs() { return delegate.getNamedEntityGraphs(); } @Override public IdentifierGeneratorDefinition getIdentifierGenerator(String name) { return delegate.getIdentifierGenerator( name ); } @Override public Collection<Table> collectTableMappings() { return delegate.collectTableMappings(); } @Override public Map<String, SQLFunction> getSqlFunctionMap() { return delegate.getSqlFunctionMap(); } @Override public MetadataBuildingOptions getMetadataBuildingOptions() { return delegate.getMetadataBuildingOptions(); } @Override public TypeConfiguration getTypeConfiguration() { return delegate.getTypeConfiguration(); }
Retrieve the Type resolver associated with this factory.
Returns:The type resolver
Deprecated:(since 5.3) No replacement, access to and handling of Types will be much different in 6.0
/** * Retrieve the {@link Type} resolver associated with this factory. * * @return The type resolver * * @deprecated (since 5.3) No replacement, access to and handling of Types will be much different in 6.0 */
@Deprecated public TypeResolver getTypeResolver() { return delegate.getTypeResolver(); } @Override public NamedQueryRepository buildNamedQueryRepository(SessionFactoryImpl sessionFactory) { return delegate.buildNamedQueryRepository( sessionFactory ); } @Override public void validate() throws MappingException { delegate.validate(); } @Override public Set<MappedSuperclass> getMappedSuperclassMappingsCopy() { return delegate.getMappedSuperclassMappingsCopy(); } }