Example usage for org.hibernate.criterion Restrictions not

List of usage examples for org.hibernate.criterion Restrictions not

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions not.

Prototype

public static Criterion not(Criterion expression) 

Source Link

Document

Return the negation of an expression

Usage

From source file:com.cimmyt.model.dao.impl.SampleDetailDAOImpl.java

License:Apache License

@SuppressWarnings("unchecked")
public List<SampleDetail> getSamplesByStudyUsedInStorageLocation(final Integer labStudyId,
        final List<Integer> excludedSamples, int firstResult, int maxResults) {
    List<SampleDetail> sampleDetails = null;
    DetachedCriteria criteria = DetachedCriteria.forClass(SampleDetail.class);
    criteria.add(Restrictions.eq("labstudyid.labstudyid", labStudyId));
    criteria.add(Restrictions.eq("selforsend", ShipmentStatus.NO_SELECTED.getId()));
    if (excludedSamples.size() > 0) {
        criteria.add(Restrictions.not(Restrictions.in("studysampleid", excludedSamples)));
    }//from   ww w .j a v  a  2 s.  co  m

    sampleDetails = (List<SampleDetail>) getHibernateTemplate().findByCriteria(criteria, firstResult,
            maxResults);
    return sampleDetails;
}

From source file:com.cimmyt.model.dao.impl.SampleDetailDAOImpl.java

License:Apache License

public Integer getSamplesByStudyUsedInStorageLocationTotal(Integer labStudyId, List<Integer> excludedSamples) {
    Integer numberSamples = null;
    DetachedCriteria criteria = DetachedCriteria.forClass(SampleDetail.class);
    criteria.add(Restrictions.eq("labstudyid.labstudyid", labStudyId));
    criteria.add(Restrictions.eq("selforsend", ShipmentStatus.NO_SELECTED.getId()));
    if (excludedSamples.size() > 0) {
        criteria.add(Restrictions.not(Restrictions.in("studysampleid", excludedSamples)));
    }//from   www  .j av  a 2s  .  c o  m
    criteria.setProjection(Projections.rowCount());
    numberSamples = (Integer) getHibernateTemplate().findByCriteria(criteria).get(0);
    return numberSamples;
}

From source file:com.cimmyt.model.dao.impl.SampleDetailDAOImpl.java

License:Apache License

public List<String> getPlatesNotInShipmentSet(final Integer idLabStudy, final List<String> excludingPlates) {

    List<String> listPlate = (List<String>) getHibernateTemplate()
            .execute(new HibernateCallback<List<String>>() {

                public List<String> doInHibernate(Session session) throws HibernateException, SQLException {
                    Criteria criteria = session.createCriteria(SampleDetail.class);
                    criteria.add(Restrictions.eq("labstudyid.labstudyid", idLabStudy));
                    if (excludingPlates != null && !excludingPlates.isEmpty())
                        criteria.add(Restrictions.not(Restrictions.in("platename", excludingPlates)));

                    criteria.add(Restrictions.eq("selforsend", "N"));
                    criteria.setProjection(Projections.distinct(Projections.property("platename")));
                    criteria.addOrder(Order.asc("platename"));

                    @SuppressWarnings("unchecked")
                    List<String> results = criteria.list();
                    return results;
                }/*from   www .  j a v  a 2s.  c  o  m*/

            });
    return listPlate;
}

From source file:com.copyright.common.hibernate.HibernateDao.java

License:Apache License

/**
 * ???.//w w w  .j  av a 2s .  co  m
 * 
 * @param uniquePropertyNames
 *            POJO???,? "name,loginid,password"
 */
public <T> boolean isUnique(Class<T> entityClass, Object entity, String uniquePropertyNames) {
    Assert.hasText(uniquePropertyNames);
    Criteria criteria = createCriteria(entityClass).setProjection(Projections.rowCount());
    String[] nameList = uniquePropertyNames.split(",");
    try {
        // 
        for (String name : nameList) {
            criteria.add(Restrictions.eq(name, PropertyUtils.getProperty(entity, name)));
        }

        // ?update,entity.

        String idName = getIdName(entityClass);

        // ?entity
        Serializable id = getId(entityClass, entity);

        // id!=null,,?update,
        if (id != null)
            criteria.add(Restrictions.not(Restrictions.eq(idName, id)));
    } catch (Exception e) {
        e.printStackTrace();
    }
    return (Integer) criteria.uniqueResult() == 0;
}

From source file:com.court.controller.AssignNewLoanFxmlController.java

private Set<Member> getAvailableGuarantors() {
    Session session = HibernateUtil.getSessionFactory().openSession();
    Criteria c1 = session.createCriteria(MemberLoan.class);
    c1.setProjection(Projections.projectionList().add(Projections.property("isComplete"), "isComplete")
            .add(Projections.property("guarantors"), "guarantors")
            .add(Projections.property("member"), "member"));
    c1.setResultTransformer(Transformers.aliasToBean(MemberLoan.class));
    List<MemberLoan> ml = c1.list();
    //GET ALL GUARANTORS OF ONGOING LOANS
    List<String> guarantors = ml.stream().filter(p -> !p.isIsComplete())
            .map(m -> m.getGuarantors() + "-" + m.getMember().getMemberId()).collect(Collectors.toList());

    Set<String> lkm = new HashSet<>(guarantors);
    List<String> guarantor_filtered = lkm.stream().map(r -> r = r.split("-")[0]).collect(Collectors.toList());

    //GET ALREADY GUARANTED MEMBERS OF THE GARNTOR
    List<String> alreadyGurantedMembers = ml.stream().filter(p -> !p.isIsComplete())
            .filter(p -> p.getMember().getMemberId().equalsIgnoreCase(getMember().getMemberId()))
            .map(MemberLoan::getGuarantors).collect(Collectors.toList());

    //========================
    Set<Member> set = new HashSet<>();
    //========================

    //GET ALL MEMBERS EXCEPT THE LOAN GRANTOR
    Criteria c2 = session.createCriteria(Member.class);
    c2.add(Restrictions.ne("memberId", getMember().getMemberId()));
    c2.add(Restrictions.eq("status", true));
    c2.setProjection(Projections.projectionList().add(Projections.property("memberId"), "memberId")
            .add(Projections.property("fullName"), "fullName"));
    c2.setResultTransformer(Transformers.aliasToBean(Member.class));

    //IF NO GURANTORS FOUND THEN ALL MEMBERS CAN GUARANT FOR THE LOAN EXCEPT THE LOAN GRANTOR
    if (getUniqueGuarantors(guarantor_filtered, UNIQUE_GUR_FRQUENCY).isEmpty()) {
        List<Member> list = c2.list();
        set.addAll(list);//  w  w  w  . ja  v  a 2s.c  om
        //
    } else {
        List<Member> list = c2.add(Restrictions
                .not(Restrictions.in("memberId", getUniqueGuarantors(guarantor_filtered, UNIQUE_GUR_FRQUENCY))))
                .list();
        set.addAll(list);
    }

    //IF NO GUARANTORS AVAILABLE THEY CAN GURANT THE GRANTOR ULTIMATELY UNTIL ALL GUARANTED LOANS END
    if (!alreadyGurantedMembers.isEmpty()) {
        Set<Member> arlm = getAlreadyGurantedMembers(alreadyGurantedMembers, session);
        set.addAll(arlm);
    }

    session.close();
    return set;
}

From source file:com.court.controller.GeneralSettingsFxmlController.java

private List<DocSequnce> getAllUpdatableFormatsAsList(List<String> keys) {
    Session session = HibernateUtil.getSessionFactory().openSession();
    Criteria c = session.createCriteria(DocSequnce.class);
    c.add(Restrictions.not(Restrictions.in("tableName", keys)));
    List<DocSequnce> list = c.list();
    session.close();//from  ww  w.j a  v a2  s .c o  m
    return list;
}

From source file:com.dell.asm.asmcore.asmmanager.db.DeviceInventoryDAO.java

License:Open Source License

/**
 * Retrieve all from Device Inventory./*from w w  w . j  a v  a2 s  . co m*/
 *
 * @return list of entities
 */
@SuppressWarnings("unchecked")
public List<DeviceInventoryEntity> getAllDeviceInventory(List<SortParamParser.SortInfo> sortInfos,
        List<FilterParamParser.FilterInfo> filterInfos, PaginationInfo paginationInfo)
        throws AsmManagerDAOException {

    Session session = null;
    Transaction tx = null;
    List<DeviceInventoryEntity> entityList = new ArrayList<DeviceInventoryEntity>();

    try {
        // NOTE[fcarta] need to at this here so we dont nest the session / transaction
        List<String> refIdsServices = ListUtils.EMPTY_LIST;
        List<String> refIdsGroups = ListUtils.EMPTY_LIST;
        List<String> refIdsAllGroups = ListUtils.EMPTY_LIST;

        boolean spFilterSet = false;
        boolean spGlobalFilterSet = false;
        if (CollectionUtils.isNotEmpty(filterInfos)) {
            for (FilterParamParser.FilterInfo filterInfo : filterInfos) {
                // if there is a service filter then grab the ref id for the device
                if (StringUtils.equals(SERVICE_FILTER_PARAM, filterInfo.getColumnName())) {
                    refIdsServices = getRefIdsOfDevicesByDeploymentIds(filterInfo.getColumnValue());
                } else if (StringUtils.equals(SERVERPOOL_FILTER_PARAM, filterInfo.getColumnName())) {
                    if (filterInfo.getColumnValue()
                            .contains(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_POOL_GLOBAL_ID)) {
                        refIdsAllGroups = getRefIdsOfDevicesByGroupIds(filterInfo.getColumnValue());
                        spGlobalFilterSet = true;
                    } else {
                        refIdsGroups = getRefIdsOfDevicesByGroupIds(filterInfo.getColumnValue());
                        spFilterSet = true;
                    }
                }
            }
        }

        session = _dao._database.getNewSession();
        tx = session.beginTransaction();

        Criteria criteria = session.createCriteria(DeviceInventoryEntity.class);
        if (sortInfos != null) {
            BaseDAO.addSortCriteria(criteria, sortInfos);
        }

        if (filterInfos != null) {
            final List<FilterParamParser.FilterInfo> notFound = BaseDAO.addFilterCriteria(criteria, filterInfos,
                    DeviceInventoryEntity.class);
            if (CollectionUtils.isNotEmpty(notFound)) {

                for (FilterParamParser.FilterInfo filterInfo : notFound) {
                    // if this is a filter by service then we need to get the subset of ref ids for devices
                    // only in the deployment id subset passed
                    if (StringUtils.equals(SERVICE_FILTER_PARAM, filterInfo.getColumnName())) {
                        if (CollectionUtils.isNotEmpty(refIdsServices)) {
                            criteria.add(Restrictions.in("refId", refIdsServices));
                        }
                    } else if (StringUtils.equals(SERVERPOOL_FILTER_PARAM, filterInfo.getColumnName())) {
                        if (spGlobalFilterSet) {
                            if (refIdsAllGroups.isEmpty()) {
                                // this means there are no servers in any server pool - all are in Global
                                criteria.add(Restrictions.sqlRestriction("(1=1)"));
                            } else {
                                criteria.add(Restrictions.not(Restrictions.in("refId", refIdsAllGroups)));
                            }
                        } else if (spFilterSet) {
                            if (refIdsGroups.isEmpty()) {
                                criteria.add(Restrictions.sqlRestriction("(1=0)"));
                            } else {
                                criteria.add(Restrictions.in("refId", refIdsGroups));
                            }
                        }
                    } else {
                        criteria.createAlias("deviceInventoryEntity", "deviceInventoryEntityAlias");
                        criteria.add(Restrictions.eq("deviceInventoryEntityAlias.deviceKey",
                                filterInfo.getColumnName()));
                        if (filterInfo.getColumnValue().size() == 1) {
                            criteria.add(Restrictions.eq("deviceInventoryEntityAlias.deviceValue",
                                    filterInfo.getColumnValue().get(0)));
                        } else if (filterInfo.getColumnValue().size() > 1) {
                            criteria.add(Restrictions.in("deviceInventoryEntityAlias.deviceValue",
                                    filterInfo.getColumnValue()));
                        }
                    }
                }
            }
        }

        if (paginationInfo != null) {
            int offset = paginationInfo.getOffset();
            int limit = paginationInfo.getLimit();
            int pageSize = limit;
            criteria.setFirstResult(offset);
            criteria.setMaxResults(pageSize);
        }

        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

        entityList = criteria.list();
        this.setFirmwareBasedOnDeployment(entityList);
        tx.commit();
    } catch (Exception e) {
        logger.warn("Caught exception during get all devices in inventory: " + e, e);
        try {
            if (tx != null) {
                tx.rollback();
            }
        } catch (Exception ex) {
            logger.warn("Unable to rollback transaction during get all devices: " + ex);
        }
        throw new AsmManagerDAOException("Caught exception during get all devices in inventory: ", e);
    } finally {
        try {
            if (session != null) {
                session.close();
            }
        } catch (Exception ex) {
            logger.warn("Unable to close session during get all devices: " + ex);
        }
    }

    return entityList;
}

From source file:com.dell.asm.asmcore.asmmanager.db.DeviceInventoryDAO.java

License:Open Source License

/**
 * Helper method to get total number of records with filter parameters
 *
 * @param filterInfos - List for holding filtering information parsed from filter query parameter value
 * @return int - total number of records
 *///from  w ww .  j a v a2s  .c  o m
public Integer getTotalRecords(List<FilterParamParser.FilterInfo> filterInfos) {
    long totalRecords = 0;
    Session session = null;
    Transaction tx = null;
    try {
        session = _dao._database.getNewSession();
        tx = session.beginTransaction();

        Criteria criteria = session.createCriteria(DeviceInventoryEntity.class);

        final List<FilterParamParser.FilterInfo> notFound = BaseDAO.addFilterCriteria(criteria, filterInfos,
                DeviceInventoryEntity.class);
        if (CollectionUtils.isNotEmpty(notFound)) {

            for (FilterParamParser.FilterInfo filterInfo : notFound) {
                // if this is a filter by service then we need to get the subset of ref ids for devices
                // only in the deployment id subset passed
                if (StringUtils.equals(SERVICE_FILTER_PARAM, filterInfo.getColumnName())) {
                    final List<String> refIds = getRefIdsOfDevicesByDeploymentIds(filterInfo.getColumnValue());
                    criteria.add(Restrictions.in("refId", refIds));
                } else if (StringUtils.equals(SERVERPOOL_FILTER_PARAM, filterInfo.getColumnName())) {
                    if (filterInfo.getColumnValue()
                            .contains(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_POOL_GLOBAL_ID)) {
                        final List<String> refIds = getRefIdsOfDevicesByGroupIds(filterInfo.getColumnValue());
                        if (refIds.isEmpty()) {
                            criteria.add(Restrictions.sqlRestriction("(1=0)"));
                        } else {
                            criteria.add(Restrictions.not(Restrictions.in("refId", refIds)));
                        }
                    } else {
                        final List<String> refIds = getRefIdsOfDevicesByGroupIds(filterInfo.getColumnValue());
                        if (refIds.isEmpty()) {
                            criteria.add(Restrictions.sqlRestriction("(1=0)"));
                        } else {
                            criteria.add(Restrictions.in("refId", refIds));
                        }
                    }
                } else {
                    criteria.createAlias("deviceInventoryEntity", "deviceInventoryEntityAlias");
                    criteria.add(Restrictions.eq("deviceInventoryEntityAlias.deviceKey",
                            filterInfo.getColumnName()));
                    if (filterInfo.getColumnValue().size() == 1) {
                        criteria.add(Restrictions.eq("deviceInventoryEntityAlias.deviceValue",
                                filterInfo.getColumnValue().get(0)));
                    } else if (filterInfo.getColumnValue().size() > 1) {
                        criteria.add(Restrictions.in("deviceInventoryEntityAlias.deviceValue",
                                filterInfo.getColumnValue()));
                    }
                }
            }
        }

        totalRecords = (long) criteria.setProjection(Projections.rowCount()).uniqueResult();

        tx.commit();
    } catch (Exception e) {
        logger.error("Exception while getting getTotalRecords", e);
        if (tx != null)
            try {
                tx.rollback();
            } catch (Exception e2) {
                logger.warn("Error during rollback", e2);
            }
    } finally {
        try {
            if (session != null)
                session.close();
        } catch (Exception e2) {
            logger.warn("Error during session close", e2);
        }
    }

    return (int) totalRecords;
}

From source file:com.duroty.application.mail.manager.MailManager.java

License:Open Source License

/**
 * DOCUMENT ME!// www  .j av  a 2s . c o  m
 *
 * @param hsession DOCUMENT ME!
 * @param repositoryName DOCUMENT ME!
 * @param folderName DOCUMENT ME!
 * @param page DOCUMENT ME!
 * @param messagesByPage DOCUMENT ME!
 * @param order DOCUMENT ME!
 * @param orderType DOCUMENT ME!
 *
 * @return DOCUMENT ME!
 *
 * @throws MailException DOCUMENT ME!
 */
public Vector getMessages(Session hsession, String repositoryName, String folderName, int page,
        int messagesByPage, int order, String orderType) throws MailException {
    Vector messages = new Vector();

    try {
        Users user = getUser(hsession, repositoryName);
        Locale locale = new Locale(user.getUseLanguage());
        TimeZone timeZone = TimeZone.getDefault();

        Date now = new Date();
        Calendar calendar = Calendar.getInstance(timeZone, locale);
        calendar.setTime(now);

        SimpleDateFormat formatter1 = new SimpleDateFormat("MMM dd", locale);
        SimpleDateFormat formatter2 = new SimpleDateFormat("HH:mm:ss", locale);
        SimpleDateFormat formatter3 = new SimpleDateFormat("MM/yy", locale);

        Criteria crit = hsession.createCriteria(Message.class);
        crit.add(Restrictions.eq("users", user));

        if (folderName.equals(this.folderAll) || folderName.equals(this.folderHidden)) {
            crit.add(Restrictions.not(Restrictions.in("mesBox",
                    new String[] { this.folderTrash, this.folderSpam, this.folderChat, FOLDER_DELETE })));
        } else if (folderName.equals(this.folderImportant)) {
            crit.add(Restrictions.eq("mesFlagged", new Boolean(true)));
        } else {
            crit.add(Restrictions.eq("mesBox", folderName));
        }

        switch (order) {
        case ORDER_BY_IMPORTANT:

            if (orderType.equals("ASC")) {
                crit.addOrder(Order.asc("mesFlagged"));
            } else {
                crit.addOrder(Order.desc("mesFlagged"));
            }

            break;

        case ORDER_BY_ADDRESS:

            if (orderType.equals("ASC")) {
                crit.addOrder(Order.asc("mesFrom"));
            } else {
                crit.addOrder(Order.desc("mesFrom"));
            }

            break;

        case ORDER_BY_SIZE:

            if (orderType.equals("ASC")) {
                crit.addOrder(Order.asc("mesSize"));
            } else {
                crit.addOrder(Order.desc("mesSize"));
            }

            break;

        case ORDER_BY_SUBJECT:

            if (orderType.equals("ASC")) {
                crit.addOrder(Order.asc("mesSubject"));
            } else {
                crit.addOrder(Order.desc("mesSubject"));
            }

            break;

        case ORDER_BY_DATE:

            if (orderType.equals("ASC")) {
                crit.addOrder(Order.asc("mesDate"));
            } else {
                crit.addOrder(Order.desc("mesDate"));
            }

            break;

        case ORDER_BY_UNREAD:

            if (orderType.equals("ASC")) {
                crit.addOrder(Order.asc("mesRecent"));
            } else {
                crit.addOrder(Order.desc("mesRecent"));
            }

            break;

        default:
            crit.addOrder(Order.desc("mesDate"));

            break;
        }

        crit.setFirstResult(page * messagesByPage);
        crit.setMaxResults(messagesByPage);

        ScrollableResults scroll = crit.scroll();

        while (scroll.next()) {
            Message message = (Message) scroll.get(0);

            MessageObj obj = new MessageObj(message.getMesName());

            obj.setBox(message.getMesBox());

            obj.setFrom(message.getMesFrom());

            if ((message.getAttachments() != null) && (message.getAttachments().size() > 0)) {
                obj.setHasAttachment(true);
            } else {
                obj.setHasAttachment(false);
            }

            int size = message.getMesSize();
            size /= 1024;

            if (size > 1024) {
                size /= 1024;
                obj.setSize(size + " MB");
            } else {
                obj.setSize(((size > 0) ? (size + "") : "<1") + " kB");
            }

            if (message.getMesBox().equals(folderSent)) {
                try {
                    obj.setEmail(message.getMesTo());
                } catch (Exception e) {
                    obj.setEmail("unknown to");
                }
            } else {
                obj.setEmail(message.getMesFrom());
            }

            Date date = message.getMesDate();

            if (date != null) {
                Calendar calendar2 = Calendar.getInstance(timeZone, locale);
                calendar2.setTime(date);

                if ((calendar.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR))
                        && (calendar.get(Calendar.MONTH) == calendar2.get(Calendar.MONTH))
                        && (calendar.get(Calendar.DATE) == calendar2.get(Calendar.DATE))) {
                    obj.setDateStr(formatter2.format(calendar2.getTime()));
                } else if (calendar.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR)) {
                    obj.setDateStr(formatter1.format(calendar2.getTime()));
                } else {
                    obj.setDateStr(formatter3.format(calendar2.getTime()));
                }
            }

            obj.setDate(date);

            if (message.getLabMeses() != null) {
                Iterator it = message.getLabMeses().iterator();
                StringBuffer label = new StringBuffer();

                while (it.hasNext()) {
                    if (label.length() > 0) {
                        label.append(", ");
                    }

                    LabMes labMes = (LabMes) it.next();
                    label.append(labMes.getId().getLabel().getLabName());
                }

                obj.setLabel(label.toString());
            }

            try {
                if (StringUtils.isBlank(message.getMesSubject())) {
                    obj.setSubject("(no subject)");
                } else {
                    obj.setSubject(message.getMesSubject());
                }
            } catch (Exception ex) {
                obj.setSubject("(no subject)");
            }

            if (message.isMesFlagged()) {
                obj.setFlagged(true);
            } else {
                obj.setFlagged(false);
            }

            if (message.isMesRecent()) {
                obj.setRecent(true);
            } else {
                obj.setRecent(false);
            }

            String priority = "normal";

            if (MessageUtilities.isHighPriority(message.getMesHeaders())) {
                priority = "high";
            } else if (MessageUtilities.isLowPriority(message.getMesHeaders())) {
                priority = "low";
            }

            obj.setPriority(priority);

            messages.addElement(obj);
        }

        return messages;
    } catch (Exception e) {
        throw new MailException(e);
    } finally {
        GeneralOperations.closeHibernateSession(hsession);
    }
}

From source file:com.duroty.application.mail.manager.MailManager.java

License:Open Source License

/**
 * DOCUMENT ME!//from   w  w  w  .jav  a 2s .c  o m
 *
 * @param hsession DOCUMENT ME!
 * @param user DOCUMENT ME!
 * @param mid DOCUMENT ME!
 * @param midReferences DOCUMENT ME!
 * @param date DOCUMENT ME!
 * @param beforeSent DOCUMENT ME!
 * @param isHtml DOCUMENT ME!
 *
 * @return DOCUMENT ME!
 */
private Vector readReference(Session hsession, Users user, String mid, String midReferences, Date date1,
        boolean beforeSent, boolean isHtml, boolean displayImages) {
    Vector references = new Vector();
    ByteArrayOutputStream baos = null;

    try {
        Locale locale = new Locale(user.getUseLanguage());
        TimeZone timeZone = TimeZone.getDefault();

        Date now = new Date();
        Calendar calendar = Calendar.getInstance(timeZone, locale);
        calendar.setTime(now);

        SimpleDateFormat formatter1 = new SimpleDateFormat("MMM dd", locale);
        SimpleDateFormat formatter2 = new SimpleDateFormat("HH:mm:ss", locale);
        SimpleDateFormat formatter3 = new SimpleDateFormat("MM/yy", locale);

        Criteria crit = hsession.createCriteria(Message.class);
        crit.add(Restrictions.not(Restrictions.eq("mesName", mid)));
        crit.add(Restrictions.eq("mesReferences", midReferences));
        crit.add(Restrictions.eq("users", user));
        crit.add(Restrictions.not(Restrictions.eq("mesBox", this.folderSpam)));
        crit.add(Restrictions.not(Restrictions.eq("mesBox", this.folderTrash)));
        crit.add(Restrictions.not(Restrictions.eq("mesBox", FOLDER_DELETE)));

        if (beforeSent) {
            crit.add(Restrictions.le("mesDate", date1));
        } else {
            crit.add(Restrictions.gt("mesDate", date1));
        }

        crit.addOrder(Order.asc("mesDate"));

        ScrollableResults scroll = crit.scroll();

        while (scroll.next()) {
            Message message = (Message) scroll.get(0);

            message.setMesRecent(false);
            hsession.update(message);
            hsession.flush();

            MessageObj obj = new MessageObj(message.getMesName());

            obj.setBox(message.getMesBox());

            obj.setFrom(message.getMesFrom());
            obj.setTo(message.getMesTo());
            obj.setReplyTo(message.getMesReplyTo());
            obj.setCc(message.getMesCc());

            if ((message.getAttachments() != null) && (message.getAttachments().size() > 0)) {
                obj.setHasAttachment(true);

                Set set = message.getAttachments();
                Iterator it = set.iterator();
                Vector attachments = new Vector();

                while (it.hasNext()) {
                    Attachment attachment = (Attachment) it.next();
                    AttachmentObj attachmentObj = new AttachmentObj();
                    attachmentObj.setIdint(attachment.getAttPart());
                    attachmentObj.setName(attachment.getAttName());

                    int size = attachment.getAttSize();
                    size /= 1024;

                    if (size > 1024) {
                        size /= 1024;
                        attachmentObj.setSize(size + " MB");
                    } else {
                        attachmentObj.setSize(((size > 0) ? (size + "") : "<1") + " kB");
                    }

                    String extension = (String) this.extensions.get(attachment.getAttContentType());

                    if (StringUtils.isBlank(extension)) {
                        extension = "generic";
                    }

                    attachmentObj.setExtension(extension);

                    attachmentObj.setContentType(attachment.getAttContentType());
                    attachments.addElement(attachmentObj);
                    obj.setAttachments(attachments);
                }
            } else {
                obj.setHasAttachment(false);
            }

            int size = message.getMesSize();
            size /= 1024;

            if (size > 1024) {
                size /= 1024;
                obj.setSize(size + " MB");
            } else {
                obj.setSize(((size > 0) ? (size + "") : "<1") + " kB");
            }

            if (message.getMesBox().equals(folderSent)) {
                try {
                    obj.setEmail(message.getMesTo());
                } catch (Exception e) {
                    obj.setEmail("unknown to");
                }
            } else {
                obj.setEmail(message.getMesFrom());
            }

            Date date = message.getMesDate();

            if (date != null) {
                Calendar calendar2 = Calendar.getInstance(timeZone, locale);
                calendar2.setTime(date);

                if ((calendar.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR))
                        && (calendar.get(Calendar.MONTH) == calendar2.get(Calendar.MONTH))
                        && (calendar.get(Calendar.DATE) == calendar2.get(Calendar.DATE))) {
                    obj.setDateStr(formatter2.format(calendar2.getTime()));
                } else if (calendar.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR)) {
                    obj.setDateStr(formatter1.format(calendar2.getTime()));
                } else {
                    obj.setDateStr(formatter3.format(calendar2.getTime()));
                }
            }

            obj.setDate(date);

            if (message.getLabMeses() != null) {
                Iterator it = message.getLabMeses().iterator();
                StringBuffer label = new StringBuffer();

                while (it.hasNext()) {
                    if (label.length() > 0) {
                        label.append(", ");
                    }

                    LabMes labMes = (LabMes) it.next();
                    label.append(labMes.getId().getLabel().getLabName());
                }

                obj.setLabel(label.toString());
            }

            try {
                if (StringUtils.isBlank(message.getMesSubject())) {
                    obj.setSubject("(no subject)");
                } else {
                    obj.setSubject(message.getMesSubject());
                }
            } catch (Exception ex) {
                obj.setSubject("(no subject)");
            }

            if (message.isMesFlagged()) {
                obj.setFlagged(true);
            } else {
                obj.setFlagged(false);
            }

            if (message.isMesRecent()) {
                obj.setRecent(true);
            } else {
                obj.setRecent(false);
            }

            String priority = "normal";

            if (MessageUtilities.isHighPriority(message.getMesHeaders())) {
                priority = "high";
            } else if (MessageUtilities.isLowPriority(message.getMesHeaders())) {
                priority = "low";
            }

            obj.setPriority(priority);

            String body = message.getMesBody();

            if (!StringUtils.isBlank(body)) {
                obj.setBody(bodyCleaner(body, displayImages));
            } else {
                obj.setBody("");
            }

            references.addElement(obj);
        }

        scroll.close();
    } catch (Exception ex) {
        return null;
    } finally {
        IOUtils.closeQuietly(baos);
    }

    if (references.size() <= 0) {
        return null;
    }

    return references;
}