/*
* 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.List;
import java.util.Map;
import javax.persistence.SharedCacheMode;
import org.hibernate.HibernateException;
import org.hibernate.MultiTenancyStrategy;
import org.hibernate.annotations.common.reflection.ReflectionManager;
import org.hibernate.boot.AttributeConverterInfo;
import org.hibernate.boot.CacheRegionDefinition;
import org.hibernate.boot.archive.scan.spi.ScanEnvironment;
import org.hibernate.boot.archive.scan.spi.ScanOptions;
import org.hibernate.boot.archive.spi.ArchiveDescriptorFactory;
import org.hibernate.boot.model.IdGeneratorStrategyInterpreter;
import org.hibernate.boot.model.naming.ImplicitNamingStrategy;
import org.hibernate.boot.model.naming.PhysicalNamingStrategy;
import org.hibernate.boot.model.relational.AuxiliaryDatabaseObject;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.cache.spi.access.AccessType;
import org.hibernate.cfg.MetadataSourceType;
import org.hibernate.dialect.function.SQLFunction;
import org.jboss.jandex.IndexView;
Convenience base class for custom implementors of MetadataBuildingOptions
using delegation. Author: Gunnar Morling, Steve Ebersole
/**
* Convenience base class for custom implementors of {@link MetadataBuildingOptions} using delegation.
*
* @author Gunnar Morling
* @author Steve Ebersole
*/
@SuppressWarnings("unused")
public abstract class AbstractDelegatingMetadataBuildingOptions implements MetadataBuildingOptions, JpaOrmXmlPersistenceUnitDefaultAware {
private final MetadataBuildingOptions delegate;
public AbstractDelegatingMetadataBuildingOptions(MetadataBuildingOptions delegate) {
this.delegate = delegate;
}
protected MetadataBuildingOptions delegate() {
return delegate;
}
@Override
public StandardServiceRegistry getServiceRegistry() {
return delegate.getServiceRegistry();
}
@Override
public MappingDefaults getMappingDefaults() {
return delegate.getMappingDefaults();
}
@Override
public List<BasicTypeRegistration> getBasicTypeRegistrations() {
return delegate.getBasicTypeRegistrations();
}
@Override
public IndexView getJandexView() {
return delegate.getJandexView();
}
@Override
public ScanOptions getScanOptions() {
return delegate.getScanOptions();
}
@Override
public ScanEnvironment getScanEnvironment() {
return delegate.getScanEnvironment();
}
@Override
public Object getScanner() {
return delegate.getScanner();
}
@Override
public ArchiveDescriptorFactory getArchiveDescriptorFactory() {
return delegate.getArchiveDescriptorFactory();
}
@Override
public ClassLoader getTempClassLoader() {
return delegate.getTempClassLoader();
}
@Override
public ImplicitNamingStrategy getImplicitNamingStrategy() {
return delegate.getImplicitNamingStrategy();
}
@Override
public PhysicalNamingStrategy getPhysicalNamingStrategy() {
return delegate.getPhysicalNamingStrategy();
}
@Override
public ReflectionManager getReflectionManager() {
return delegate.getReflectionManager();
}
@Override
public SharedCacheMode getSharedCacheMode() {
return delegate.getSharedCacheMode();
}
@Override
public AccessType getImplicitCacheAccessType() {
return delegate.getImplicitCacheAccessType();
}
@Override
public MultiTenancyStrategy getMultiTenancyStrategy() {
return delegate.getMultiTenancyStrategy();
}
@Override
public IdGeneratorStrategyInterpreter getIdGenerationTypeInterpreter() {
return delegate.getIdGenerationTypeInterpreter();
}
@Override
public List<CacheRegionDefinition> getCacheRegionDefinitions() {
return delegate.getCacheRegionDefinitions();
}
@Override
public boolean ignoreExplicitDiscriminatorsForJoinedInheritance() {
return delegate.ignoreExplicitDiscriminatorsForJoinedInheritance();
}
@Override
public boolean createImplicitDiscriminatorsForJoinedInheritance() {
return delegate.createImplicitDiscriminatorsForJoinedInheritance();
}
@Override
public boolean shouldImplicitlyForceDiscriminatorInSelect() {
return delegate.shouldImplicitlyForceDiscriminatorInSelect();
}
@Override
public boolean useNationalizedCharacterData() {
return delegate.useNationalizedCharacterData();
}
@Override
public boolean isSpecjProprietarySyntaxEnabled() {
return delegate.isSpecjProprietarySyntaxEnabled();
}
@Override
public List<MetadataSourceType> getSourceProcessOrdering() {
return delegate.getSourceProcessOrdering();
}
@Override
public Map<String, SQLFunction> getSqlFunctions() {
return delegate.getSqlFunctions();
}
@Override
public List<AuxiliaryDatabaseObject> getAuxiliaryDatabaseObjectList() {
return delegate.getAuxiliaryDatabaseObjectList();
}
@Override
public List<AttributeConverterInfo> getAttributeConverters() {
return delegate.getAttributeConverters();
}
@Override
public void apply(JpaOrmXmlPersistenceUnitDefaults jpaOrmXmlPersistenceUnitDefaults) {
if ( delegate instanceof JpaOrmXmlPersistenceUnitDefaultAware ) {
( (JpaOrmXmlPersistenceUnitDefaultAware) delegate ).apply( jpaOrmXmlPersistenceUnitDefaults );
}
else {
throw new HibernateException(
"AbstractDelegatingMetadataBuildingOptions delegate did not " +
"implement JpaOrmXmlPersistenceUnitDefaultAware; " +
"cannot delegate JpaOrmXmlPersistenceUnitDefaultAware#apply"
);
}
}
}