package org.om.core.impl.session.factory;
import javax.inject.Inject;
import org.om.core.api.mapping.registry.MappingRegistry;
import org.om.core.api.persistence.PersistenceAdapterFactory;
import org.om.core.api.persistence.PersistenceContext;
import org.om.core.api.persistence.proxy.ProxyFactory;
import org.om.core.api.session.Session;
import org.om.core.api.session.factory.SessionFactory;
import org.om.core.impl.session.ImmutableSessionImpl;
public class ImmutableSessionFactory implements SessionFactory {
private final MappingRegistry mappingRegistry;
private final PersistenceAdapterFactory persistenceDelegateFactory;
private final ProxyFactory proxyFactory;
@Inject
public ImmutableSessionFactory(PersistenceAdapterFactory persistenceDelegateFactory, MappingRegistry mappingRegistry, ProxyFactory proxyFactory) {
this.persistenceDelegateFactory = persistenceDelegateFactory;
this.mappingRegistry = mappingRegistry;
this.proxyFactory = proxyFactory;
}
public Session getSession(PersistenceContext persistenceContext) {
return new ImmutableSessionImpl(persistenceContext, persistenceDelegateFactory, mappingRegistry, proxyFactory);
}
}