List of usage examples for org.hibernate.criterion Restrictions gt
public static SimpleExpression gt(String propertyName, Object value)
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; }