/*
* 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.orm.persister.spi;
import org.hibernate.boot.spi.MetadataImplementor;
import org.hibernate.engine.spi.SessionFactoryImplementor;
import org.hibernate.orm.persister.collection.spi.CollectionPersister;
import org.hibernate.orm.persister.common.spi.DatabaseModel;
import org.hibernate.orm.persister.embeddable.spi.EmbeddableMapper;
import org.hibernate.orm.persister.entity.spi.EntityPersister;
import org.hibernate.orm.type.spi.TypeConfiguration;
/**
* "Parameter object" providing access to additional information that may be needed
* in the creation of the persisters.
*
* @author Steve Ebersole
*/
public interface PersisterCreationContext {
SessionFactoryImplementor getSessionFactory();
TypeConfiguration getTypeConfiguration();
MetadataImplementor getMetadata();
DatabaseModel getDatabaseModel();
PersisterFactory getPersisterFactory();
void registerEntityPersister(EntityPersister entityPersister);
void registerCollectionPersister(CollectionPersister collectionPersister);
void registerEmbeddablePersister(EmbeddableMapper embeddableMapper);
void registerEntityNameResolvers(EntityPersister entityPersister);
}