package au.edu.anu.datacommons.xslt.db;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* PersistenceManager
*
* Australian National University Data Commons
*
* A Persistence Manager
*
* JUnit Coverage:
* None
*
* <pre>
* Version Date Developer Description
* 0.1 03/04/2013 Genevieve Turner (GT) Initial
* </pre>
*
*/
public class PersistenceManager {
static final Logger LOGGER = LoggerFactory.getLogger(PersistenceManager.class);
private static final PersistenceManager singleton_ = new PersistenceManager();
protected EntityManagerFactory emf;
/**
* getInstance
*
* Returns an instance of the object
*
* <pre>
* Version Date Developer Description
* 0.1 18/02/2013 Genevieve Turner (GT) Initial
* </pre>
*
* @return Returns the PersistenceManager
*/
public static PersistenceManager getInstance() {
return singleton_;
}
/**
* Constructor class
*
* <pre>
* Version Date Developer Description
* 0.1 18/02/2013 Genevieve Turner (GT) Initial
* </pre>
*
*/
private PersistenceManager() {
}
/**
* getEntityManagerFactory
*
* Returns the entity manager factory.
*
* <pre>
* Version Date Developer Description
* 0.1 18/02/2013 Genevieve Turner (GT) Initial
* </pre>
*
* @return
*/
public EntityManagerFactory getEntityManagerFactory() {
if (emf == null) {
createEntityManagerFactory();
}
return emf;
}
/**
* closeEntityManagerFactory
*
* Closes the entity maanger factory
*
* <pre>
* Version Date Developer Description
* 0.1 18/02/2013 Genevieve Turner (GT) Initial
* </pre>
*/
public void closeEntityManagerFactory() {
if (emf != null) {
emf.close();
emf = null;
LOGGER.info("Persistence finished at " + new java.util.Date());
}
}
/**
* createEntityManagerFactory
*
* Creates the entity manager factory
*
* <pre>
* Version Date Developer Description
* 0.1 18/02/2013 Genevieve Turner (GT) Initial
* </pre>
*/
protected void createEntityManagerFactory() {
this.emf = Persistence.createEntityManagerFactory("datacommons");
LOGGER.info("Persistence started at " + new java.util.Date());
}
}