package com.weecode.plugin.comics.model; import java.util.ArrayList; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import javax.persistence.Query; import org.eclipse.persistence.internal.jpa.EntityManagerImpl; import org.eclipse.persistence.sessions.UnitOfWork; import com.weecode.plugin.comics.model.emf.ComicsEntityManagerFactory; import com.weecode.plugin.comics.model.eo.Publisher; import com.weecode.plugin.comics.model.eo.Title; /** * * @author Jason Kusnier and Tim Hollosy * */ public class TitlesModel { private EntityManager em; private List titles = new ArrayList<Title>(); private List<Publisher> publishers = new ArrayList<Publisher>(); private EntityTransaction transaction; public TitlesModel() { em = ComicsEntityManagerFactory.createEntityManager(); transaction = em.getTransaction(); transaction.begin(); readTitles(); readPublishers(); } public void close() { em.close(); } @SuppressWarnings("unchecked") private void readTitles() { Query query = em.createQuery("select t from Title t"); this.titles = query.getResultList(); } @SuppressWarnings("unchecked") private void readPublishers() { Query query = em.createQuery("select p from Publisher p"); this.publishers = query.getResultList(); } public List<Publisher> getPublishers() { return publishers; } public void save() { transaction.commit(); transaction.begin(); } public boolean isDirty() { UnitOfWork uow = ((EntityManagerImpl)em).getUnitOfWork(); return uow.hasChanges(); } public void refresh() { // em.flush(); em.clear(); readTitles(); } public List<Title> getTitles() { return titles; } }