package qa.qcri.aidr.trainer.pybossa.dao.impl; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Repository; import qa.qcri.aidr.trainer.pybossa.dao.TaskQueueDao; import qa.qcri.aidr.trainer.pybossa.entity.TaskQueue; import java.util.Date; import java.util.List; /** * Created with IntelliJ IDEA. * User: jilucas * Date: 9/25/13 * Time: 8:10 AM * To change this template use File | Settings | File Templates. */ @Repository public class TaskQueueDaoImpl extends AbstractDaoImpl<TaskQueue, String> implements TaskQueueDao { protected TaskQueueDaoImpl(){ super(TaskQueue.class); } @Override public void createTaskQueue(TaskQueue taskQueue) { Date date = new Date(); if(taskQueue.getTaskQueueID() == null || taskQueue.getCreated() == null){ taskQueue.setCreated(date); } taskQueue.setUpdated(date); saveOrUpdate(taskQueue); } @Override public List<TaskQueue> findTaskQueue(Long taskID, Long clientAppID, Long documentID) { return findByCriteria(Restrictions.conjunction() .add(Restrictions.eq("taskID",taskID)) .add(Restrictions.eq("clientAppID", clientAppID)) .add(Restrictions.eq("documentID", documentID))); //To change body of implemented methods use File | Settings | File Templates. } @Override public List<TaskQueue> findTaskQueueByDocument(Long clientAppID, Long documentID) { return findByCriteria(Restrictions.conjunction() .add(Restrictions.eq("clientAppID", clientAppID)) .add(Restrictions.eq("documentID", documentID))); } @Override public List<TaskQueue> findTaskQueueByStatus(String column, Integer status) { return findByCriteria(Restrictions.eq(column, status)); //To change body of implemented methods use File | Settings | File Templates. } @Override public List<TaskQueue> findTaskQueueSetByStatus(Long clientAppID, Integer status) { return findByCriteria(Restrictions.conjunction() .add(Restrictions.eq("clientAppID", clientAppID)) .add(Restrictions.eq("status", status))); } @Override public List<TaskQueue> findTaskQueueByTaskID(Long clientAppID, Long taskID) { return findByCriteria(Restrictions.conjunction() .add(Restrictions.eq("clientAppID", clientAppID)) .add(Restrictions.eq("taskID", taskID))); } @Override public void deleteTaskQueue(Long taskQueueID) { List<TaskQueue> taskQueues = findByCriteria(Restrictions.eq("taskQueueID", taskQueueID)); if(taskQueues.size() > 0){ delete(taskQueues.get(0)); } //To change body of implemented methods use File | Settings | File Templates. } @Override public List<TaskQueue> findLatestTaskQueue(Long clientAppID) { Criterion criterion = Restrictions.eq("clientAppID",clientAppID); return getMaxOrderByCriteria(criterion, "updated"); } }