/**
*
*/
package net.frontlinesms.data.repository.hibernate;
import java.util.Collection;
import java.util.List;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import net.frontlinesms.data.Order;
import net.frontlinesms.data.domain.Email;
import net.frontlinesms.data.domain.Email.Field;
import net.frontlinesms.data.repository.EmailDao;
/**
* @author Alex
*
*/
public class HibernateEmailDao extends BaseHibernateDao<Email> implements EmailDao {
/** Create a new instance of this class */
public HibernateEmailDao() {
super(Email.class);
}
/** @see EmailDao#deleteEmail(Email) */
public void deleteEmail(Email email) {
super.delete(email);
}
/** @see EmailDao#getAllEmails() */
public Collection<Email> getAllEmails() {
return super.getAll();
}
/** @see EmailDao#getEmailCount() */
public int getEmailCount() {
return super.countAll();
}
/** @see EmailDao#getEmailsForStatus(Email.Status[]) */
public Collection<Email> getEmailsForStatus(Email.Status[] status) {
DetachedCriteria criteria = super.getCriterion();
criteria.add(Restrictions.in(Field.STATUS.getFieldName(), status));
return super.getList(criteria);
}
/** @see EmailDao#getEmailsWithLimit(Email.Field, net.frontlinesms.data.Order, int, int) */
public List<Email> getEmailsWithLimit(Field sortBy, Order order, int startIndex, int limit) {
DetachedCriteria criteria = super.getSortCriterion(sortBy, order);
return super.getList(criteria, startIndex, limit);
}
/** @see EmailDao#getEmailsWithLimitWithoutSorting(int, int) */
public Collection<Email> getEmailsWithLimitWithoutSorting(int startIndex, int limit) {
return super.getAll(startIndex, limit);
}
/** @see EmailDao#saveEmail(Email) */
public void saveEmail(Email email) {
super.saveWithoutDuplicateHandling(email);
}
/** @see EmailDao#updateEmail(Email) */
public void updateEmail(Email email) {
super.updateWithoutDuplicateHandling(email);
}
}