Example usage for org.hibernate.criterion Restrictions gt

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

Introduction

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

Prototype

public static SimpleExpression gt(String propertyName, Object value) 

Source Link

Document

Apply a "greater than" constraint to the named property

Usage

From source file:org.opennms.web.svclayer.outage.OutagesFilteringView.java

License:Open Source License

/**
 * <p>buildCriteria</p>/*  ww w  . ja v a2  s. c om*/
 *
 * @param request a {@link javax.servlet.http.HttpServletRequest} object.
 * @return a {@link org.opennms.netmgt.model.OnmsCriteria} object.
 */
public OnmsCriteria buildCriteria(HttpServletRequest request) {
    OnmsCriteria criteria = new OnmsCriteria(OnmsOutage.class);

    if (request.getParameter("nodeid") != null && request.getParameter("nodeid").length() > 0) {
        criteria.add(Restrictions.eq("node.id", WebSecurityUtils.safeParseInt(request.getParameter("nodeid"))));
    }

    if (request.getParameter("not_nodeid") != null && request.getParameter("not_nodeid").length() > 0) {
        criteria.add(
                Restrictions.ne("node.id", WebSecurityUtils.safeParseInt(request.getParameter("not_nodeid"))));
    }

    if (request.getParameter("ipinterfaceid") != null && request.getParameter("ipinterfaceid").length() > 0) {
        criteria.add(Restrictions.eq("ipInterface.id",
                WebSecurityUtils.safeParseInt(request.getParameter("ipinterfaceid"))));
    }

    if (request.getParameter("not_ipinterfaceid") != null
            && request.getParameter("not_ipinterfaceid").length() > 0) {
        criteria.add(Restrictions.ne("ipInterface.id",
                WebSecurityUtils.safeParseInt(request.getParameter("not_ipinterfaceid"))));
    }

    if (request.getParameter("serviceid") != null && request.getParameter("serviceid").length() > 0) {
        criteria.add(Restrictions.eq("monitoredService.serviceType.id",
                WebSecurityUtils.safeParseInt(request.getParameter("serviceid"))));
    }

    if (request.getParameter("not_serviceid") != null && request.getParameter("not_serviceid").length() > 0) {
        criteria.add(Restrictions.ne("monitoredService.serviceType.id",
                WebSecurityUtils.safeParseInt(request.getParameter("not_serviceid"))));
    }

    if (request.getParameter("ifserviceid") != null && request.getParameter("ifserviceid").length() > 0) {
        criteria.add(Restrictions.eq("monitoredService.id",
                WebSecurityUtils.safeParseInt(request.getParameter("ifserviceid"))));
    }

    if (request.getParameter("not_ifserviceid") != null
            && request.getParameter("not_ifserviceid").length() > 0) {
        criteria.add(Restrictions.ne("monitoredService.id",
                WebSecurityUtils.safeParseInt(request.getParameter("not_ifserviceid"))));
    }

    if (request.getParameter("smaller_iflostservice") != null
            && request.getParameter("smaller_iflostservice").length() > 0) {
        Date date = new Date(WebSecurityUtils.safeParseLong(request.getParameter("smaller_iflostservice")));
        criteria.add(Restrictions.lt("ifLostService", date));
    }

    if (request.getParameter("bigger_iflostservice") != null
            && request.getParameter("bigger_iflostservice").length() > 0) {
        Date date = new Date(WebSecurityUtils.safeParseLong(request.getParameter("bigger_iflostservice")));
        criteria.add(Restrictions.gt("ifLostService", date));
    }

    if (request.getParameter("smaller_ifregainedservice") != null
            && request.getParameter("smaller_ifregainedservice").length() > 0) {
        Date date = new Date(WebSecurityUtils.safeParseLong(request.getParameter("smaller_ifregainedservice")));
        criteria.add(Restrictions.lt("ifRegainedService", date));
    }

    if (request.getParameter("bigger_ifregainedservice") != null
            && request.getParameter("bigger_ifregainedservice").length() > 0) {
        Date date = new Date(WebSecurityUtils.safeParseLong(request.getParameter("bigger_ifregainedservice")));
        criteria.add(Restrictions.gt("ifRegainedService", date));
    }

    if (request.getParameter("building") != null && request.getParameter("building").length() > 0) {
        criteria.createAlias("node.assetRecord", "assetRecord");
        criteria.add(Restrictions.eq("assetRecord.building", request.getParameter("building")));
    }

    if (request.getParameter("category1") != null && request.getParameter("category1").length() > 0
            && request.getParameter("category2") != null && request.getParameter("category2").length() > 0) {
        for (Criterion criterion : m_categoryDao.getCriterionForCategorySetsUnion(
                request.getParameterValues("category1"), request.getParameterValues("category2"))) {
            criteria.add(criterion);
        }
    } else if (request.getParameter("category1") != null && request.getParameter("category1").length() > 0) {
        for (Criterion criterion : m_categoryDao
                .getCriterionForCategorySetsUnion(request.getParameterValues("category1"))) {
            criteria.add(criterion);
        }
    }

    if ("true".equals(request.getParameter("currentOutages"))) {
        criteria.add(Restrictions.isNull("ifRegainedService"));
    }

    if ("true".equals(request.getParameter("resolvedOutages"))) {
        criteria.add(Restrictions.isNotNull("ifRegainedService"));
    }

    return criteria;
}

From source file:org.opensixen.dev.omvc.server.RevisionDownloader.java

License:GNU General Public License

@Override
public List<Revision> getRevisions(int project_ID, int from) {
    if (!Sentinel.checkAccess(PermissionFactory.get(OMVCPermission.PERM_LISTREV))) {
        throw new SecurityException("Not enough privileges.");
    }//from  ww w  . ja v a2  s.  c  o  m

    Project project = HSession.get(Project.class, project_ID);
    Criteria crit = HSession.getCriteria(Revision.class);
    crit.add(Restrictions.eq("project", project));
    crit.add(Restrictions.gt("revision_ID", from));
    crit.addOrder(Order.asc("revision_ID"));
    return crit.list();
}

From source file:org.openswing.swing.util.server.HibernateUtils.java

License:Open Source License

/**
 * Read a block of records from the result set, starting from the specified Criteria.
 * @param filteredColumns filtering conditions
 * @param currentSortedColumns sorting conditions (attribute names)
 * @param currentSortedVersusColumns sorting conditions (order versus)
 * @param action fetching versus: PREVIOUS_BLOCK_ACTION, NEXT_BLOCK_ACTION or LAST_BLOCK_ACTION
 * @param startPos start position of data fetching in result set
 * @param blockSize number of records to read
 * @param criteria Criteria object to execute
 * @param sess Session/*from   w ww.ja va2 s  .c o m*/
 */
public static Response getBlockFromCriteria(Map filteredColumns, ArrayList currentSortedColumns,
        ArrayList currentSortedVersusColumns, int action, int startIndex, int blockSize, Criteria criteria,
        Session sess) throws Exception {
    Iterator keys = filteredColumns.keySet().iterator();
    String attributeName = null;
    FilterWhereClause[] filterClauses = null;

    int seqAlias = 0;
    HashMap listAlias = new HashMap();
    String aliasEntity = "";
    String aliasString = "";
    String aliasName = "";

    while (keys.hasNext()) {
        attributeName = keys.next().toString();
        filterClauses = (FilterWhereClause[]) filteredColumns.get(attributeName);

        if (attributeName.indexOf(".") != -1) {
            while (attributeName.indexOf(".") != -1) {
                aliasString = seqAlias + "";
                aliasEntity = attributeName.substring(0, attributeName.indexOf("."));
                attributeName = attributeName.replaceAll(aliasEntity + ".", "");

                if (listAlias.containsKey(aliasEntity)) {
                    aliasString = (String) listAlias.get(aliasEntity);
                } else {
                    if (!aliasName.equals("")) {
                        aliasEntity = aliasName + "." + aliasEntity;
                    }
                    listAlias.put(aliasEntity, aliasString);
                    seqAlias++;
                    criteria.createAlias(aliasEntity, aliasString);
                }
                if (aliasName.equals("")) {
                    aliasName = aliasEntity;
                } else {
                    aliasName = aliasEntity + "." + aliasName;
                }
            }
            attributeName = aliasString + "." + attributeName;
            aliasName = "";
        }

        if (filterClauses[0].getValue() != null && !(filterClauses[0].getOperator().equals(Consts.IS_NOT_NULL)
                || filterClauses[0].getOperator().equals(Consts.IS_NULL))) {
            if (filterClauses[0].getValue() instanceof ArrayList) {
                // name IN (...)
                // (name op value1 OR name op value2 OR ...)
                ArrayList inValues = (ArrayList) filterClauses[0].getValue();
                criteria = criteria.add(Restrictions.in(attributeName, inValues));
            } else {
                // name op value
                if (filterClauses[0].getOperator().equals(Consts.EQ)) {
                    criteria = criteria.add(Restrictions.eq(attributeName, filterClauses[0].getValue()));
                } else if (filterClauses[0].getOperator().equals(Consts.NEQ)) {
                    criteria = criteria.add(Restrictions.ne(attributeName, filterClauses[0].getValue()));
                } else if (filterClauses[0].getOperator().equals(Consts.LE)) {
                    criteria = criteria.add(Restrictions.le(attributeName, filterClauses[0].getValue()));
                } else if (filterClauses[0].getOperator().equals(Consts.LT)) {
                    criteria = criteria.add(Restrictions.lt(attributeName, filterClauses[0].getValue()));
                } else if (filterClauses[0].getOperator().equals(Consts.GE)) {
                    criteria = criteria.add(Restrictions.ge(attributeName, filterClauses[0].getValue()));
                } else if (filterClauses[0].getOperator().equals(Consts.GT)) {
                    criteria = criteria.add(Restrictions.gt(attributeName, filterClauses[0].getValue()));
                } else if (filterClauses[0].getOperator().equals(Consts.LIKE)) {
                    criteria = criteria.add(Restrictions.like(attributeName, filterClauses[0].getValue()));
                }
            }
        } else {
            // name IS NULL
            // name IS NOT NULL
            if (filterClauses[0].getOperator().equals(Consts.IS_NULL)) {
                criteria = criteria.add(Restrictions.isNull(attributeName));
            } else if (filterClauses[0].getOperator().equals(Consts.IS_NOT_NULL)) {
                criteria = criteria.add(Restrictions.isNotNull(attributeName));
            }
        }
        if (filterClauses[1] != null) {
            if (filterClauses[1].getValue() != null
                    && !(filterClauses[1].getOperator().equals(Consts.IS_NOT_NULL)
                            || filterClauses[1].getOperator().equals(Consts.IS_NULL))) {
                if (filterClauses[1].getValue() instanceof ArrayList) {
                    // name IN (...)
                    // (name op value1 OR name op value2 OR ...)
                    ArrayList inValues = (ArrayList) filterClauses[1].getValue();
                    criteria = criteria.add(Restrictions.in(attributeName, inValues));
                } else {
                    // name op value
                    if (filterClauses[1].getOperator().equals(Consts.EQ)) {
                        criteria = criteria.add(Restrictions.eq(attributeName, filterClauses[1].getValue()));
                    } else if (filterClauses[1].getOperator().equals(Consts.NEQ)) {
                        criteria = criteria.add(Restrictions.ne(attributeName, filterClauses[1].getValue()));
                    } else if (filterClauses[1].getOperator().equals(Consts.LE)) {
                        criteria = criteria.add(Restrictions.le(attributeName, filterClauses[1].getValue()));
                    } else if (filterClauses[1].getOperator().equals(Consts.LT)) {
                        criteria = criteria.add(Restrictions.lt(attributeName, filterClauses[1].getValue()));
                    } else if (filterClauses[1].getOperator().equals(Consts.GE)) {
                        criteria = criteria.add(Restrictions.ge(attributeName, filterClauses[1].getValue()));
                    } else if (filterClauses[1].getOperator().equals(Consts.GT)) {
                        criteria = criteria.add(Restrictions.gt(attributeName, filterClauses[1].getValue()));
                    } else if (filterClauses[1].getOperator().equals(Consts.LIKE)) {
                        criteria = criteria.add(Restrictions.like(attributeName, filterClauses[1].getValue()));
                    }
                }
            } else {
                // name IS NULL
                // name IS NOT NULL
                if (filterClauses[1].getOperator().equals(Consts.IS_NULL)) {
                    criteria = criteria.add(Restrictions.isNull(attributeName));
                } else if (filterClauses[1].getOperator().equals(Consts.IS_NOT_NULL)) {
                    criteria = criteria.add(Restrictions.isNotNull(attributeName));
                }
            }
        }
    }

    // applying ordering conditions...
    for (int i = 0; i < currentSortedColumns.size(); i++) {
        if (currentSortedVersusColumns.get(i).equals(Consts.ASC_SORTED)) {
            criteria = criteria.addOrder(Order.asc(currentSortedColumns.get(i).toString()));
        } else {
            criteria = criteria.addOrder(Order.desc(currentSortedColumns.get(i).toString()));
        }
    }

    // read a block of records...
    ArrayList gridList = new ArrayList();
    boolean moreRows = false;
    int resultSetLength = -1;
    int rowCount = 0;
    List list = null;
    if (action == GridParams.LAST_BLOCK_ACTION) {
        // last block requested: the whole result set will be loaded, to determine the result set length
        List tmp = criteria.list();
        rowCount = tmp.size();

        resultSetLength = rowCount;
        action = GridParams.NEXT_BLOCK_ACTION;
        startIndex = Math.max(rowCount - blockSize, 0);
        rowCount = 0;

        list = new ArrayList();
        for (int i = startIndex; i < startIndex + blockSize; i++) {
            list.add(tmp.get(i));
        }
    } else {
        if (action == GridParams.PREVIOUS_BLOCK_ACTION) {
            action = GridParams.NEXT_BLOCK_ACTION;
            startIndex = Math.max(startIndex - blockSize, 0);
        }
        criteria.setFirstResult(startIndex);
        criteria.setMaxResults(blockSize + 1);
        list = criteria.list();
    }
    gridList.addAll(list);
    if (gridList.size() > blockSize) {
        gridList.remove(gridList.size() - 1);
        moreRows = true;
    }
    if (resultSetLength == -1) {
        resultSetLength = gridList.size();
    }

    //    if (gridList.size()>0 && gridList.get(0) instanceof Object[]) {
    //      return QueryUtil.getQuery(
    //        query.getReturnAliases(),
    //        valueObjectClass,
    //        gridList,
    //        moreRows
    //      );
    //
    //    }

    return new VOListResponse(gridList, moreRows, resultSetLength);
}

From source file:org.openswing.swing.util.server.HibernateUtils.java

License:Open Source License

/**
 * Read all records from the result set, starting from the specified Criteria.
 * @param valueObjectClass value object type
 * @param filteredColumns filtering conditions
 * @param currentSortedColumns sorting conditions (attribute names)
 * @param currentSortedVersusColumns sorting conditions (order versus)
 * @param fetchMode FetchMode object, used to specificy how to retrieve inner objects; e.g. FetchMode.INNER
 * @param sess Session//from   w w  w .  j  a va2  s.  co  m
 */
public static Response getAllFromCriteria(Map filteredColumns, ArrayList currentSortedColumns,
        ArrayList currentSortedVersusColumns, Criteria criteria, Session sess) throws Exception {
    Iterator keys = filteredColumns.keySet().iterator();
    String attributeName = null;
    FilterWhereClause[] filterClauses = null;

    int seqAlias = 0;
    HashMap listAlias = new HashMap();
    String aliasEntity = "";
    String aliasString = "";
    String aliasName = "";

    while (keys.hasNext()) {
        attributeName = keys.next().toString();
        filterClauses = (FilterWhereClause[]) filteredColumns.get(attributeName);

        if (attributeName.indexOf(".") != -1) {
            while (attributeName.indexOf(".") != -1) {
                aliasString = seqAlias + "";
                aliasEntity = attributeName.substring(0, attributeName.indexOf("."));
                attributeName = attributeName.replaceAll(aliasEntity + ".", "");

                if (listAlias.containsKey(aliasEntity)) {
                    aliasString = (String) listAlias.get(aliasEntity);
                } else {
                    if (!aliasName.equals("")) {
                        aliasEntity = aliasName + "." + aliasEntity;
                    }
                    listAlias.put(aliasEntity, aliasString);
                    seqAlias++;
                    criteria.createAlias(aliasEntity, aliasString);
                }
                if (aliasName.equals("")) {
                    aliasName = aliasEntity;
                } else {
                    aliasName = aliasEntity + "." + aliasName;
                }
            }
            attributeName = aliasString + "." + attributeName;
            aliasName = "";
        }

        if (filterClauses[0].getValue() != null && !(filterClauses[0].getOperator().equals(Consts.IS_NOT_NULL)
                || filterClauses[0].getOperator().equals(Consts.IS_NULL))) {
            if (filterClauses[0].getValue() instanceof ArrayList) {
                // name IN (...)
                // (name op value1 OR name op value2 OR ...)
                ArrayList inValues = (ArrayList) filterClauses[0].getValue();
                criteria = criteria.add(Restrictions.in(attributeName, inValues));
            } else {
                // name op value
                if (filterClauses[0].getOperator().equals(Consts.EQ)) {
                    criteria = criteria.add(Restrictions.eq(attributeName, filterClauses[0].getValue()));
                } else if (filterClauses[0].getOperator().equals(Consts.NEQ)) {
                    criteria = criteria.add(Restrictions.ne(attributeName, filterClauses[0].getValue()));
                } else if (filterClauses[0].getOperator().equals(Consts.LE)) {
                    criteria = criteria.add(Restrictions.le(attributeName, filterClauses[0].getValue()));
                } else if (filterClauses[0].getOperator().equals(Consts.LT)) {
                    criteria = criteria.add(Restrictions.lt(attributeName, filterClauses[0].getValue()));
                } else if (filterClauses[0].getOperator().equals(Consts.GE)) {
                    criteria = criteria.add(Restrictions.ge(attributeName, filterClauses[0].getValue()));
                } else if (filterClauses[0].getOperator().equals(Consts.GT)) {
                    criteria = criteria.add(Restrictions.gt(attributeName, filterClauses[0].getValue()));
                } else if (filterClauses[0].getOperator().equals(Consts.LIKE)) {
                    criteria = criteria.add(Restrictions.like(attributeName, filterClauses[0].getValue()));
                }
            }
        } else {
            // name IS NULL
            // name IS NOT NULL
            if (filterClauses[0].getOperator().equals(Consts.IS_NULL)) {
                criteria = criteria.add(Restrictions.isNull(attributeName));
            } else if (filterClauses[0].getOperator().equals(Consts.IS_NOT_NULL)) {
                criteria = criteria.add(Restrictions.isNotNull(attributeName));
            }
        }
        if (filterClauses[1] != null) {
            if (filterClauses[1].getValue() != null
                    && !(filterClauses[1].getOperator().equals(Consts.IS_NOT_NULL)
                            || filterClauses[1].getOperator().equals(Consts.IS_NULL))) {
                if (filterClauses[1].getValue() instanceof ArrayList) {
                    // name IN (...)
                    // (name op value1 OR name op value2 OR ...)
                    ArrayList inValues = (ArrayList) filterClauses[1].getValue();
                    criteria = criteria.add(Restrictions.in(attributeName, inValues));
                } else {
                    // name op value
                    if (filterClauses[1].getOperator().equals(Consts.EQ)) {
                        criteria = criteria.add(Restrictions.eq(attributeName, filterClauses[1].getValue()));
                    } else if (filterClauses[1].getOperator().equals(Consts.NEQ)) {
                        criteria = criteria.add(Restrictions.ne(attributeName, filterClauses[1].getValue()));
                    } else if (filterClauses[1].getOperator().equals(Consts.LE)) {
                        criteria = criteria.add(Restrictions.le(attributeName, filterClauses[1].getValue()));
                    } else if (filterClauses[1].getOperator().equals(Consts.LT)) {
                        criteria = criteria.add(Restrictions.lt(attributeName, filterClauses[1].getValue()));
                    } else if (filterClauses[1].getOperator().equals(Consts.GE)) {
                        criteria = criteria.add(Restrictions.ge(attributeName, filterClauses[1].getValue()));
                    } else if (filterClauses[1].getOperator().equals(Consts.GT)) {
                        criteria = criteria.add(Restrictions.gt(attributeName, filterClauses[1].getValue()));
                    } else if (filterClauses[1].getOperator().equals(Consts.LIKE)) {
                        criteria = criteria.add(Restrictions.like(attributeName, filterClauses[1].getValue()));
                    }
                }
            } else {
                // name IS NULL
                // name IS NOT NULL
                if (filterClauses[1].getOperator().equals(Consts.IS_NULL)) {
                    criteria = criteria.add(Restrictions.isNull(attributeName));
                } else if (filterClauses[1].getOperator().equals(Consts.IS_NOT_NULL)) {
                    criteria = criteria.add(Restrictions.isNotNull(attributeName));
                }
            }
        }
    }

    // applying ordering conditions...
    for (int i = 0; i < currentSortedColumns.size(); i++) {
        if (currentSortedVersusColumns.get(i).equals(Consts.ASC_SORTED)) {
            criteria = criteria.addOrder(Order.asc(currentSortedColumns.get(i).toString()));
        } else {
            criteria = criteria.addOrder(Order.desc(currentSortedColumns.get(i).toString()));
        }
    }

    // read a block of records...
    ArrayList gridList = new ArrayList();
    boolean moreRows = false;
    List list = criteria.list();
    int rowCount = list.size();
    int resultSetLength = rowCount;

    gridList.addAll(list);

    //    if (gridList.size()>0 && gridList.get(0) instanceof Object[]) {
    //      return QueryUtil.getQuery(
    //        query.getReturnAliases(),
    //        valueObjectClass,
    //        gridList,
    //        moreRows
    //      );
    //
    //    }

    return new VOListResponse(gridList, moreRows, resultSetLength);
}

From source file:org.osiam.resources.helper.SingularFilterChain.java

License:Apache License

@Override
public Criterion buildCriterion() {
    switch (constraint) {
    case CONTAINS:
        return Restrictions.like(key, "%" + value + "%");
    case STARTS_WITH:
        return Restrictions.like(key, value + "%");
    case EQUALS:/*from  w  w w.  jav a  2  s  . co m*/
        return Restrictions.eq(key, value);
    case GREATER_EQUALS:
        return Restrictions.ge(key, value);
    case GREATER_THAN:
        return Restrictions.gt(key, value);
    case LESS_EQUALS:
        return Restrictions.le(key, value);
    case LESS_THAN:
        return Restrictions.lt(key, value);
    case PRESENT:
        return Restrictions.isNotNull(key);
    default:
        throw new IllegalArgumentException("Unknown constraint.");
    }
}

From source file:org.projectforge.business.fibu.kost.BuchungssatzDao.java

License:Open Source License

@Override
public List<BuchungssatzDO> getList(final BaseSearchFilter filter) {
    accessChecker.checkIsLoggedInUserMemberOfGroup(ProjectForgeGroup.FINANCE_GROUP,
            ProjectForgeGroup.CONTROLLING_GROUP);
    final BuchungssatzFilter myFilter;
    if (filter instanceof BuchungssatzFilter) {
        myFilter = (BuchungssatzFilter) filter;
    } else {// ww w .j ava2  s. com
        myFilter = new BuchungssatzFilter(filter);
    }
    final QueryFilter queryFilter = new QueryFilter(filter);
    if (validateTimeperiod(myFilter) == false) {
        throw new UserException("fibu.buchungssatz.error.invalidTimeperiod");
    }
    if (myFilter.getFromMonth() < 0) {
        // Kein Von-Monat gesetzt.
        queryFilter.add(Restrictions.eq("year", myFilter.getFromYear()));
        queryFilter.add(Restrictions.between("month", 0, 11));
    } else if (myFilter.getToYear() > 0) {
        if (myFilter.getFromYear() == myFilter.getToYear()) {
            queryFilter.add(Restrictions.eq("year", myFilter.getFromYear()));
            queryFilter.add(Restrictions.between("month", myFilter.getFromMonth(), myFilter.getToMonth()));
        } else {
            // between but different years
            queryFilter.add(Restrictions.disjunction()
                    .add(Restrictions.and(Restrictions.eq("year", myFilter.getFromYear()),
                            Restrictions.ge("month", myFilter.getFromMonth())))
                    .add(Restrictions.and(Restrictions.eq("year", myFilter.getToYear()),
                            Restrictions.le("month", myFilter.getToMonth())))
                    .add(Restrictions.and(Restrictions.gt("year", myFilter.getFromYear()),
                            Restrictions.lt("year", myFilter.getToYear()))));
        }
    } else {
        // Nur Von-Monat gesetzt.
        queryFilter.add(Restrictions.eq("year", myFilter.getFromYear()));
        queryFilter.add(Restrictions.eq("month", myFilter.getFromMonth()));
    }
    queryFilter.addOrder(Order.asc("year")).addOrder(Order.asc("month")).addOrder(Order.asc("satznr"));
    final List<BuchungssatzDO> list = getList(queryFilter);
    return list;
}

From source file:org.projectforge.business.teamcal.event.TeamEventDao.java

License:Open Source License

/**
 * The time period of the filter will be extended by one day. This is needed due to all day events which are stored in
 * UTC. The additional events in the result list not matching the time period have to be removed by caller!
 *
 * @param filter/* w w w  .j a  va2  s  .co  m*/
 * @return
 */
private QueryFilter buildQueryFilter(final TeamEventFilter filter) {
    final QueryFilter queryFilter = new QueryFilter(filter);
    final Collection<Integer> cals = filter.getTeamCals();
    if (CollectionUtils.isNotEmpty(cals) == true) {
        queryFilter.add(Restrictions.in("calendar.id", cals));
    } else if (filter.getTeamCalId() != null) {
        queryFilter.add(Restrictions.eq("calendar.id", filter.getTeamCalId()));
    }
    // Following period extension is needed due to all day events which are stored in UTC. The additional events in the result list not
    // matching the time period have to be removed by caller!
    Date startDate = filter.getStartDate();
    if (startDate != null) {
        startDate = new Date(startDate.getTime() - ONE_DAY);
    }
    Date endDate = filter.getEndDate();
    if (endDate != null) {
        endDate = new Date(endDate.getTime() + ONE_DAY);
    }
    // limit events to load to chosen date view.
    if (startDate != null && endDate != null) {
        if (filter.isOnlyRecurrence() == false) {
            queryFilter.add(Restrictions.or(
                    (Restrictions.or(Restrictions.between("startDate", startDate, endDate),
                            Restrictions.between("endDate", startDate, endDate))),
                    // get events whose duration overlap with chosen duration.
                    (Restrictions.and(Restrictions.le("startDate", startDate),
                            Restrictions.ge("endDate", endDate)))));
        } else {
            queryFilter.add(
                    // "startDate" < endDate && ("recurrenceUntil" == null ||"recurrenceUntil" > startDate)
                    (Restrictions.and(Restrictions.lt("startDate", endDate),
                            Restrictions.or(Restrictions.isNull("recurrenceUntil"),
                                    Restrictions.gt("recurrenceUntil", startDate)))));
        }
    } else if (startDate != null) {
        if (filter.isOnlyRecurrence() == false) {
            queryFilter.add(Restrictions.ge("startDate", startDate));
        } else {
            // This branch is reached for subscriptions and calendar downloads.
            queryFilter.add(
                    // "recurrenceUntil" == null ||"recurrenceUntil" > startDate
                    Restrictions.or(Restrictions.isNull("recurrenceUntil"),
                            Restrictions.gt("recurrenceUntil", startDate)));
        }
    } else if (endDate != null) {
        queryFilter.add(Restrictions.le("startDate", endDate));
    }
    queryFilter.addOrder(Order.desc("startDate"));
    if (log.isDebugEnabled() == true) {
        log.debug(ToStringBuilder.reflectionToString(filter));
    }
    return queryFilter;
}

From source file:org.projectforge.business.timesheet.TimesheetDao.java

License:Open Source License

/**
 * Checks if the time sheet overlaps with another time sheet of the same user. Should be checked on every insert or
 * update (also undelete). For time collision detection deleted time sheets are ignored.
 * /*w ww .j av a  2 s.  c  o m*/
 * @return The existing time sheet with the time period collision.
 */
public boolean hasTimeOverlap(final TimesheetDO timesheet, final boolean throwException) {
    long begin = System.currentTimeMillis();
    Validate.notNull(timesheet);
    Validate.notNull(timesheet.getUser());
    final QueryFilter queryFilter = new QueryFilter();
    queryFilter.add(Restrictions.eq("user", timesheet.getUser()));
    queryFilter.add(Restrictions.lt("startTime", timesheet.getStopTime()));
    queryFilter.add(Restrictions.gt("stopTime", timesheet.getStartTime()));
    if (timesheet.getId() != null) {
        // Update time sheet, do not compare with itself.
        queryFilter.add(Restrictions.ne("id", timesheet.getId()));
    }
    final List<TimesheetDO> list = getList(queryFilter);
    if (list != null && list.size() > 0) {
        final TimesheetDO ts = list.get(0);
        if (throwException == true) {
            log.info("Time sheet collision detected of time sheet " + timesheet + " with existing time sheet "
                    + ts);
            final String startTime = DateHelper.formatIsoTimestamp(ts.getStartTime());
            final String stopTime = DateHelper.formatIsoTimestamp(ts.getStopTime());
            throw new UserException("timesheet.error.timeperiodOverlapDetection", new MessageParam(ts.getId()),
                    new MessageParam(startTime), new MessageParam(stopTime));
        }
        long end = System.currentTimeMillis();
        log.info("TimesheetDao.hasTimeOverlap took: " + (end - begin) + " ms.");
        return true;
    }
    long end = System.currentTimeMillis();
    log.info("TimesheetDao.hasTimeOverlap took: " + (end - begin) + " ms.");
    return false;
}

From source file:org.projectforge.fibu.kost.BuchungssatzDao.java

License:Open Source License

@Override
public List<BuchungssatzDO> getList(BaseSearchFilter filter) {
    accessChecker.checkIsLoggedInUserMemberOfGroup(ProjectForgeGroup.FINANCE_GROUP,
            ProjectForgeGroup.CONTROLLING_GROUP);
    final BuchungssatzFilter myFilter;
    if (filter instanceof BuchungssatzFilter) {
        myFilter = (BuchungssatzFilter) filter;
    } else {/* w  ww.  j av a 2 s.c o m*/
        myFilter = new BuchungssatzFilter(filter);
    }
    final QueryFilter queryFilter = new QueryFilter(filter);
    if (validateTimeperiod(myFilter) == false) {
        throw new UserException("fibu.buchungssatz.error.invalidTimeperiod");
    }
    if (myFilter.getFromMonth() < 0) {
        // Kein Von-Monat gesetzt.
        queryFilter.add(Restrictions.eq("year", myFilter.getFromYear()));
        queryFilter.add(Restrictions.between("month", 0, 11));
    } else if (myFilter.getToYear() > 0) {
        if (myFilter.getFromYear() == myFilter.getToYear()) {
            queryFilter.add(Restrictions.eq("year", myFilter.getFromYear()));
            queryFilter.add(Restrictions.between("month", myFilter.getFromMonth(), myFilter.getToMonth()));
        } else {
            // between but different years
            queryFilter.add(Restrictions.disjunction()
                    .add(Restrictions.and(Restrictions.eq("year", myFilter.getFromYear()),
                            Restrictions.ge("month", myFilter.getFromMonth())))
                    .add(Restrictions.and(Restrictions.eq("year", myFilter.getToYear()),
                            Restrictions.le("month", myFilter.getToMonth())))
                    .add(Restrictions.and(Restrictions.gt("year", myFilter.getFromYear()),
                            Restrictions.lt("year", myFilter.getToYear()))));
        }
    } else {
        // Nur Von-Monat gesetzt.
        queryFilter.add(Restrictions.eq("year", myFilter.getFromYear()));
        queryFilter.add(Restrictions.eq("month", myFilter.getFromMonth()));
    }
    queryFilter.addOrder(Order.asc("year")).addOrder(Order.asc("month")).addOrder(Order.asc("satznr"));
    final List<BuchungssatzDO> list = getList(queryFilter);
    return list;
}

From source file:org.projectforge.plugins.teamcal.event.TeamEventDao.java

License:Open Source License

/**
 * The time period of the filter will be extended by one day. This is needed due to all day events which are stored in UTC. The additional
 * events in the result list not matching the time period have to be removed by caller!
 * @param filter// w w  w  . j  av a2 s  .c om
 * @param allDay
 * @return
 */
private QueryFilter buildQueryFilter(final TeamEventFilter filter) {
    final QueryFilter queryFilter = new QueryFilter(filter);
    final Collection<Integer> cals = filter.getTeamCals();
    if (CollectionUtils.isNotEmpty(cals) == true) {
        queryFilter.add(Restrictions.in("calendar.id", cals));
    } else if (filter.getTeamCalId() != null) {
        queryFilter.add(Restrictions.eq("calendar.id", filter.getTeamCalId()));
    }
    // Following period extension is needed due to all day events which are stored in UTC. The additional events in the result list not
    // matching the time period have to be removed by caller!
    Date startDate = filter.getStartDate();
    if (startDate != null) {
        startDate = new Date(startDate.getTime() - ONE_DAY);
    }
    Date endDate = filter.getEndDate();
    if (endDate != null) {
        endDate = new Date(endDate.getTime() + ONE_DAY);
    }
    // limit events to load to chosen date view.
    if (startDate != null && endDate != null) {
        if (filter.isOnlyRecurrence() == false) {
            queryFilter.add(Restrictions.or(
                    (Restrictions.or(Restrictions.between("startDate", startDate, endDate),
                            Restrictions.between("endDate", startDate, endDate))),
                    // get events whose duration overlap with chosen duration.
                    (Restrictions.and(Restrictions.le("startDate", startDate),
                            Restrictions.ge("endDate", endDate)))));
        } else {
            queryFilter.add(
                    // "startDate" < endDate && ("recurrenceUntil" == null ||"recurrenceUnti" > startDate)
                    (Restrictions.and(Restrictions.lt("startDate", endDate),
                            Restrictions.or(Restrictions.isNull("recurrenceUntil"),
                                    Restrictions.gt("recurrenceUntil", startDate)))));
        }
    } else if (startDate != null) {
        queryFilter.add(Restrictions.ge("startDate", startDate));
    } else if (endDate != null) {
        queryFilter.add(Restrictions.le("startDate", endDate));
    }
    queryFilter.addOrder(Order.desc("startDate"));
    if (log.isDebugEnabled() == true) {
        log.debug(ToStringBuilder.reflectionToString(filter));
    }
    return queryFilter;
}