package org.jboss.tools.hibernate.runtime.v_4_0.internal;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.hibernate.service.jdbc.dialect.spi.DialectFactory;
import org.jboss.tools.hibernate.runtime.common.AbstractConfigurationFacade;
import org.jboss.tools.hibernate.runtime.common.IFacadeFactory;
public class ConfigurationFacadeImpl extends AbstractConfigurationFacade {
public ConfigurationFacadeImpl(
IFacadeFactory facadeFactory,
Configuration configuration) {
super(facadeFactory, configuration);
}
protected Object buildTargetSessionFactory() {
return ((Configuration)getTarget()).buildSessionFactory(buildServiceRegistry());
}
protected Object buildTargetSettings() {
return ((Configuration)getTarget()).buildSettings(buildServiceRegistry());
}
protected Object buildTargetDialect() {
return buildServiceRegistry()
.getService(DialectFactory.class)
.buildDialect(getProperties(), null);
}
private ServiceRegistry buildServiceRegistry() {
ServiceRegistryBuilder builder = new ServiceRegistryBuilder();
builder.applySettings(((Configuration)getTarget()).getProperties());
return builder.buildServiceRegistry();
}
}