package uk.ac.ebi.fg.myequivalents.provenance.db.managers; import java.util.Properties; import javax.persistence.EntityManagerFactory; import uk.ac.ebi.fg.myequivalents.managers.impl.db.DbManagerFactory; import uk.ac.ebi.fg.myequivalents.managers.interfaces.AccessControlManager; import uk.ac.ebi.fg.myequivalents.managers.interfaces.BackupManager; import uk.ac.ebi.fg.myequivalents.managers.interfaces.EntityMappingManager; import uk.ac.ebi.fg.myequivalents.managers.interfaces.ServiceManager; import uk.ac.ebi.fg.myequivalents.provenance.interfaces.ProvManagerFactory; import uk.ac.ebi.fg.myequivalents.provenance.interfaces.ProvRegistryManager; /** * DB-based implementation of {@link ProvManagerFactory}. This gets an {@link EntityManagerFactory} initialised * based on Spring facilities, which allow to put together JPA annotations from multiple packages. * * <dl><dt>date</dt><dd>10 Jun 2014</dd></dl> * @author Marco Brandizi * */ public class ProvDbManagerFactory extends DbManagerFactory implements ProvManagerFactory { public ProvDbManagerFactory ( Properties hibernateProperties ) { super ( hibernateProperties ); } @Override public ServiceManager newServiceManager () { return new ProvDbServiceManager ( entityManagerFactory.createEntityManager () ); } @Override public ServiceManager newServiceManager ( String email, String apiPassword ) { return new ProvDbServiceManager ( entityManagerFactory.createEntityManager (), email, apiPassword ); } @Override public EntityMappingManager newEntityMappingManager () { return new ProvDbEntityMappingManager ( entityManagerFactory.createEntityManager () ); } @Override public EntityMappingManager newEntityMappingManager ( String email, String apiPassword ) { return new ProvDbEntityMappingManager ( entityManagerFactory.createEntityManager (), email, apiPassword ); } @Override public AccessControlManager newAccessControlManager ( String email, String apiPassword ) { return new ProvDbAccessControlManager ( entityManagerFactory.createEntityManager (), email, apiPassword ); } @Override public AccessControlManager newAccessControlManagerFullAuth ( String email, String userPassword ) { return new ProvDbAccessControlManager ( entityManagerFactory.createEntityManager (), email, userPassword, true ); } @Override public ProvRegistryManager newProvRegistryManager ( String email, String apiPassword ) { return new DbProvRegistryManager ( entityManagerFactory.createEntityManager (), email, apiPassword ); } @Override public BackupManager newBackupManager ( String email, String apiPassword ) { return new ProvDbBackupManager ( entityManagerFactory.createEntityManager (), email, apiPassword ); } }