package sushi.persistence; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; /** * This class is the controller for the database access and to get a connection to the EntityManager. */ public class Persistor { private static String PERSISTENCE_UNIT_NAME = DatabaseEnvironments.DEVELOPMENT.getDatabaseName(); private static EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME); private static EntityManager entityManager = entityManagerFactory.createEntityManager(); public static EntityManagerFactory getEntityManagerFactory() { return entityManagerFactory; } public static void setEntityManagerFactory( EntityManagerFactory entityManagerFactory) { Persistor.entityManagerFactory = entityManagerFactory; } public static EntityManager getEntityManager() { return entityManager; } public static void setEntityManager(EntityManager entityManager) { Persistor.entityManager = entityManager; } public static String getPERSISTENCE_UNIT_NAME() { return PERSISTENCE_UNIT_NAME; } public static void useDevelopmentEnviroment(){ setPERSISTENCE_UNIT_NAME(DatabaseEnvironments.DEVELOPMENT.getDatabaseName()); } public static void useTestEnviroment(){ setPERSISTENCE_UNIT_NAME(DatabaseEnvironments.TEST.getDatabaseName()); } public static void setPERSISTENCE_UNIT_NAME(String persistenceUnitName) { entityManager.close(); entityManagerFactory.close(); entityManagerFactory = Persistence.createEntityManagerFactory(persistenceUnitName); entityManager = entityManagerFactory.createEntityManager(); } }