package com.ciandt.techgallery.persistence.dao.impl;
import com.googlecode.objectify.Objectify;
import com.ciandt.techgallery.ofy.OfyService;
import com.ciandt.techgallery.persistence.dao.CronJobDAO;
import com.ciandt.techgallery.persistence.model.CronJob;
import com.ciandt.techgallery.service.enums.CronStatus;
public class CronJobDAOImpl extends GenericDAOImpl<CronJob, Long> implements CronJobDAO {
/*
* Attributes --------------------------------------------
*/
private static CronJobDAOImpl instance;
/*
* Constructor --------------------------------------------
*/
private CronJobDAOImpl() {}
/**
* Singleton method for the DAO.
*
* @author <a href="mailto:joaom@ciandt.com"> João Felipe de Medeiros Moreira </a>
* @since 08/10/2015
*
* @return CronJobsDAOImpl instance.
*/
public static CronJobDAOImpl getInstance() {
if (instance == null) {
instance = new CronJobDAOImpl();
}
return instance;
}
@Override
public CronJob findLastExecutedCronJob(String name) {
Objectify objectify = OfyService.ofy();
CronJob job =
objectify.load().type(CronJob.class).order("-" + CronJob.START_TIMESTAMP)
.filter(CronJob.NAME, name).filter(CronJob.CRON_STATUS, CronStatus.SUCCESS).first()
.now();
return job;
}
}