All pastes #923276 Raw Edit

Miscellany

public text v1 · immutable
#923276 ·published 2008-02-29 12:42 UTC
rendered paste body
    private Criteria createArticlesForMagazineCriteria(Magazine magazine,
                                                       PagingAndSortCriteria criteria,
                                                       User editor,
                                                       Boolean hasApprovalTimeLimit,
                                                       Rating... rating)
    {
        Session session = getSession();
        Junction junction = Restrictions.conjunction()
            .add(Restrictions.eq("magazine.id", magazine.getId()));
        if (null != editor) {
            junction = junction.add(Restrictions.eq("editor.id", editor.getId()));
        }
        if (null != rating && rating.length > 0) {
            if (rating.length == 1) {
                junction = junction.add(Restrictions.eq("authorApproval", rating[0]));
            } else {
                Junction dj = Restrictions.disjunction();
                for (Rating r: rating) {
                    dj.add(Restrictions.eq("authorApproval", r));
                }
                junction.add(dj);
            }
        }
        if (null != hasApprovalTimeLimit) {
            if (hasApprovalTimeLimit) {
                junction = junction.add(Restrictions.isNotNull("approvalTimeLimit"));
            } else {
                junction = junction.add(Restrictions.isNull("approvalTimeLimit"));
            }
        }
        Criteria search = session.createCriteria(EditedArticleBean.class).add(junction);
        if (null == criteria) {
            return;
        }
        if (criteria.isSortReversed()) {
            for (String sortBy: criteria.getSortFieldList()) {
                search.addOrder(Order.desc(sortBy));
            }
        } else {
            for (String sortBy: criteria.getSortFieldList()) {
                search.addOrder(Order.asc(sortBy));
            }
        }
        return search.list()
    }