package au.com.vaadinutils.jasper.scheduler; import java.util.LinkedList; import java.util.List; import javax.persistence.EntityManager; import au.com.vaadinutils.dao.EntityManagerProvider; import au.com.vaadinutils.dao.JpaBaseDao; import au.com.vaadinutils.jasper.JasperEmailSettings; import au.com.vaadinutils.jasper.scheduler.entities.ReportEmailScheduleEntity; public enum JasperReportScheudulerService implements ReportEmailScheduleProvider { // Logger logger = LogManager.getLogger(); SELF; private Scheduler scheduler; public void start(JasperEmailSettings settings, DBmanager dbManager) { ReportEmailRunner runner = new ReportEmailRunnerImpl(); scheduler = new Scheduler(this, runner, settings,dbManager); } public void stop() { scheduler.stop(); } public void reschedule() { scheduler.reschedule(); } /** * return all the scheduled reports */ @Override public List<ReportEmailSchedule> getSchedules() { JpaBaseDao<ReportEmailScheduleEntity, Long> dao = JpaBaseDao.getGenericDao(ReportEmailScheduleEntity.class); List<ReportEmailSchedule> schedules = new LinkedList<ReportEmailSchedule>(); schedules.addAll(dao.findAll()); return schedules; } // @Override // public void commitDbTransaction() // { // EntityManager em = EntityManagerProvider.getEntityManager(); // em.getTransaction().commit(); // EntityManagerProvider.setCurrentEntityManager(null); // em.close(); // } // // @Override // public void beginDbTransaction() // { // EntityManager em = EntityManagerProvider.createEntityManager(); // EntityManagerProvider.setCurrentEntityManager(em); // em.getTransaction().begin(); // } @Override public void delete(ReportEmailSchedule schedule) { EntityManager em = EntityManagerProvider.getEntityManager(); em.remove(schedule); } }