package net.enilink.komma.generator;
import java.util.Locale;
import net.enilink.komma.core.IDialect;
import net.enilink.komma.core.IEntityManager;
import net.enilink.komma.core.IEntityManagerFactory;
import net.enilink.komma.core.IProvider;
import net.enilink.komma.core.IUnitOfWork;
import net.enilink.komma.core.KommaModule;
import net.enilink.komma.dm.IDataManagerFactory;
import com.google.inject.Inject;
public class SimpleEMFactory implements IEntityManagerFactory {
@Inject
IEntityManager em;
@Inject
IDataManagerFactory dmFactory;
@Inject
IDialect dialect;
@Inject
IUnitOfWork uow;
@Override
public boolean isOpen() {
return dmFactory != null;
}
@Override
public void close() {
em.close();
if (dmFactory != null) {
dmFactory.close();
dmFactory = null;
}
}
@Override
public IEntityManager create() {
return get();
}
@Override
public IEntityManager create(IEntityManager scope) {
return create();
}
@Override
public IEntityManagerFactory createChildFactory(KommaModule... modules) {
return this;
}
@Override
public IEntityManagerFactory createChildFactory(IProvider<Locale> locale,
KommaModule... modules) {
return this;
}
@Override
public IEntityManager get() {
return em;
}
@Override
public IDialect getDialect() {
return dialect;
}
@Override
public IEntityManagerFactory getParent() {
return null;
}
@Override
public KommaModule getModule() {
return null;
}
@Override
public IUnitOfWork getUnitOfWork() {
return uow;
}
}