List of usage examples for org.hibernate.criterion Restrictions isNotNull
public static Criterion isNotNull(String propertyName)
From source file:org.opennms.web.alarm.AlarmUtil.java
License:Open Source License
public static OnmsCriteria getOnmsCriteria(final AlarmCriteria alarmCriteria) { final OnmsCriteria criteria = new OnmsCriteria(OnmsAlarm.class); criteria.createAlias("node", "node", OnmsCriteria.LEFT_JOIN); criteria.createAlias("serviceType", "serviceType", OnmsCriteria.LEFT_JOIN); alarmCriteria.visit(new AlarmCriteriaVisitor<RuntimeException>() { @Override//from w ww . j a v a 2 s . co m public void visitAckType(AcknowledgeType ackType) throws RuntimeException { if (ackType == AcknowledgeType.ACKNOWLEDGED) { criteria.add(Restrictions.isNotNull("alarmAckUser")); } else if (ackType == AcknowledgeType.UNACKNOWLEDGED) { criteria.add(Restrictions.isNull("alarmAckUser")); } } @Override public void visitFilter(Filter filter) throws RuntimeException { criteria.add(filter.getCriterion()); } @Override public void visitLimit(int limit, int offset) throws RuntimeException { criteria.setMaxResults(limit); criteria.setFirstResult(offset); } @Override public void visitSortStyle(SortStyle sortStyle) throws RuntimeException { switch (sortStyle) { case COUNT: criteria.addOrder(Order.desc("counter")); break; case FIRSTEVENTTIME: criteria.addOrder(Order.desc("firstEventTime")); break; case ID: criteria.addOrder(Order.desc("id")); break; case INTERFACE: criteria.addOrder(Order.desc("ipAddr")); break; case LASTEVENTTIME: criteria.addOrder(Order.desc("lastEventTime")); break; case NODE: criteria.addOrder(Order.desc("node.label")); break; case POLLER: criteria.addOrder(Order.desc("distPoller")); break; case SERVICE: criteria.addOrder(Order.desc("serviceType.name")); break; case SEVERITY: criteria.addOrder(Order.desc("severity")); break; case ACKUSER: criteria.addOrder(Order.asc("alarmAckUser")); break; case REVERSE_COUNT: criteria.addOrder(Order.asc("counter")); break; case REVERSE_FIRSTEVENTTIME: criteria.addOrder(Order.asc("firstEventTime")); break; case REVERSE_ID: criteria.addOrder(Order.asc("id")); break; case REVERSE_INTERFACE: criteria.addOrder(Order.asc("ipAddr")); break; case REVERSE_LASTEVENTTIME: criteria.addOrder(Order.asc("lastEventTime")); break; case REVERSE_NODE: criteria.addOrder(Order.asc("node.label")); break; case REVERSE_POLLER: criteria.addOrder(Order.asc("distPoller")); break; case REVERSE_SERVICE: criteria.addOrder(Order.asc("serviceType.name")); break; case REVERSE_SEVERITY: criteria.addOrder(Order.asc("severity")); break; case REVERSE_ACKUSER: criteria.addOrder(Order.desc("alarmAckUser")); break; default: break; } } }); return criteria; }
From source file:org.opennms.web.alarm.DaoWebAlarmRepository.java
License:Open Source License
private OnmsCriteria getOnmsCriteria(final AlarmCriteria alarmCriteria) { final OnmsCriteria criteria = new OnmsCriteria(OnmsAlarm.class); criteria.createAlias("node", "node", OnmsCriteria.LEFT_JOIN); criteria.createAlias("serviceType", "serviceType", OnmsCriteria.LEFT_JOIN); alarmCriteria.visit(new AlarmCriteriaVisitor<RuntimeException>() { public void visitAckType(AcknowledgeType ackType) throws RuntimeException { if (ackType == AcknowledgeType.ACKNOWLEDGED) { criteria.add(Restrictions.isNotNull("alarmAckUser")); } else if (ackType == AcknowledgeType.UNACKNOWLEDGED) { criteria.add(Restrictions.isNull("alarmAckUser")); }//w w w . j a va 2 s. com } public void visitFilter(Filter filter) throws RuntimeException { criteria.add(filter.getCriterion()); } public void visitLimit(int limit, int offset) throws RuntimeException { criteria.setMaxResults(limit); criteria.setFirstResult(offset); } public void visitSortStyle(SortStyle sortStyle) throws RuntimeException { switch (sortStyle) { case COUNT: criteria.addOrder(Order.desc("counter")); break; case FIRSTEVENTTIME: criteria.addOrder(Order.desc("firstEventTime")); break; case ID: criteria.addOrder(Order.desc("id")); break; case INTERFACE: criteria.addOrder(Order.desc("ipAddr")); break; case LASTEVENTTIME: criteria.addOrder(Order.desc("lastEventTime")); break; case NODE: criteria.addOrder(Order.desc("node.label")); break; case POLLER: criteria.addOrder(Order.desc("distPoller")); break; case SERVICE: criteria.addOrder(Order.desc("serviceType.name")); break; case SEVERITY: criteria.addOrder(Order.desc("severity")); break; case ACKUSER: criteria.addOrder(Order.asc("alarmAckUser")); break; case REVERSE_COUNT: criteria.addOrder(Order.asc("counter")); break; case REVERSE_FIRSTEVENTTIME: criteria.addOrder(Order.asc("firstEventTime")); break; case REVERSE_ID: criteria.addOrder(Order.asc("id")); break; case REVERSE_INTERFACE: criteria.addOrder(Order.asc("ipAddr")); break; case REVERSE_LASTEVENTTIME: criteria.addOrder(Order.asc("lastEventTime")); break; case REVERSE_NODE: criteria.addOrder(Order.asc("node.label")); break; case REVERSE_POLLER: criteria.addOrder(Order.asc("distPoller")); break; case REVERSE_SERVICE: criteria.addOrder(Order.asc("serviceType.name")); break; case REVERSE_SEVERITY: criteria.addOrder(Order.asc("severity")); break; case REVERSE_ACKUSER: criteria.addOrder(Order.desc("alarmAckUser")); break; default: break; } } }); return criteria; }
From source file:org.opennms.web.element.NetworkElementFactory.java
License:Open Source License
@Override public String getHostname(String ipAddress) { OnmsCriteria criteria = new OnmsCriteria(OnmsIpInterface.class); criteria.add(Restrictions.eq("ipAddress", InetAddressUtils.addr(ipAddress))); criteria.add(Restrictions.isNotNull("ipHostName")); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); List<OnmsIpInterface> ipIfaces = m_ipInterfaceDao.findMatching(criteria); if (ipIfaces.size() > 0) { OnmsIpInterface iface = ipIfaces.get(0); return iface.getIpHostName(); }// w ww . jav a2 s . com return null; }
From source file:org.opennms.web.element.NetworkElementFactory.java
License:Open Source License
@Override public Interface[] getAllManagedIpInterfaces(boolean includeSNMP) { OnmsCriteria criteria = new OnmsCriteria(OnmsIpInterface.class); criteria.createAlias("snmpInterface", "snmpInterface", OnmsCriteria.LEFT_JOIN); criteria.createAlias("node", "node"); criteria.add(Restrictions.ne("isManaged", "D")); criteria.add(Restrictions.ne("ipAddress", InetAddressUtils.addr("0.0.0.0"))); criteria.add(Restrictions.isNotNull("ipAddress")); criteria.addOrder(Order.asc("ipHostName")); criteria.addOrder(Order.asc("node.id")); criteria.addOrder(Order.asc("ipAddress")); if (!includeSNMP) { return getInterfaceArray(m_ipInterfaceDao.findMatching(criteria)); } else {// w ww .ja v a 2 s .co m return getInterfaceArrayWithSnmpData(m_ipInterfaceDao.findMatching(criteria)); } }
From source file:org.opennms.web.event.DaoWebEventRepository.java
License:Open Source License
private OnmsCriteria getOnmsCriteria(final EventCriteria eventCriteria) { final OnmsCriteria criteria = new OnmsCriteria(OnmsEvent.class); criteria.createAlias("alarm", "alarm", OnmsCriteria.LEFT_JOIN); criteria.createAlias("node", "node", OnmsCriteria.LEFT_JOIN); criteria.createAlias("serviceType", "serviceType", OnmsCriteria.LEFT_JOIN); criteria.add(new EventDisplayFilter("Y").getCriterion()); eventCriteria.visit(new EventCriteriaVisitor<RuntimeException>() { @Override/*from w w w .ja v a2s . c om*/ public void visitAckType(AcknowledgeType ackType) throws RuntimeException { if (ackType == AcknowledgeType.ACKNOWLEDGED) { criteria.add(Restrictions.isNotNull("eventAckUser")); } else if (ackType == AcknowledgeType.UNACKNOWLEDGED) { criteria.add(Restrictions.isNull("eventAckUser")); } } @Override public void visitFilter(Filter filter) throws RuntimeException { criteria.add(filter.getCriterion()); } @Override public void visitLimit(int limit, int offset) throws RuntimeException { criteria.setMaxResults(limit); criteria.setFirstResult(offset); } @Override public void visitSortStyle(SortStyle sortStyle) throws RuntimeException { switch (sortStyle) { case ID: criteria.addOrder(Order.desc("id")); break; case INTERFACE: criteria.addOrder(Order.desc("ipAddr")); break; case NODE: criteria.addOrder(Order.desc("node.label")); break; case POLLER: criteria.addOrder(Order.desc("distPoller")); break; case SERVICE: criteria.addOrder(Order.desc("serviceType.name")); break; case SEVERITY: criteria.addOrder(Order.desc("eventSeverity")); break; case TIME: criteria.addOrder(Order.desc("eventTime")); break; case REVERSE_ID: criteria.addOrder(Order.asc("id")); break; case REVERSE_INTERFACE: criteria.addOrder(Order.asc("ipAddr")); break; case REVERSE_NODE: criteria.addOrder(Order.asc("node.label")); break; case REVERSE_POLLER: criteria.addOrder(Order.asc("distPoller")); break; case REVERSE_SERVICE: criteria.addOrder(Order.desc("serviceType.name")); break; case REVERSE_SEVERITY: criteria.addOrder(Order.asc("eventSeverity")); break; case REVERSE_TIME: criteria.addOrder(Order.asc("eventTime")); break; } } }); return criteria; }
From source file:org.opennms.web.notification.DaoWebNotificationRepository.java
License:Open Source License
/** * TODO: Convert this function to use {@link Criteria} instead. *//*from w ww .j a va 2s . c om*/ private static final OnmsCriteria getOnmsCriteria(final NotificationCriteria notificationCriteria) { final OnmsCriteria criteria = new OnmsCriteria(OnmsNotification.class); criteria.createAlias("node", "node", OnmsCriteria.LEFT_JOIN); criteria.createAlias("serviceType", "serviceType", OnmsCriteria.LEFT_JOIN); criteria.createAlias("event", "event", OnmsCriteria.LEFT_JOIN); notificationCriteria.visit(new NotificationCriteriaVisitor<RuntimeException>() { @Override public void visitAckType(AcknowledgeType ackType) throws RuntimeException { if (ackType == AcknowledgeType.ACKNOWLEDGED) { criteria.add(Restrictions.isNotNull("answeredBy")); } else if (ackType == AcknowledgeType.UNACKNOWLEDGED) { criteria.add(Restrictions.isNull("answeredBy")); } // AcknowledgeType.BOTH just adds no restriction } @Override public void visitFilter(Filter filter) throws RuntimeException { criteria.add(filter.getCriterion()); } @Override public void visitLimit(int limit, int offset) throws RuntimeException { criteria.setMaxResults(limit); criteria.setFirstResult(offset); } @Override public void visitSortStyle(SortStyle sortStyle) throws RuntimeException { switch (sortStyle) { case RESPONDER: criteria.addOrder(Order.desc("answeredBy")); break; case PAGETIME: criteria.addOrder(Order.desc("pageTime")); break; case RESPONDTIME: criteria.addOrder(Order.desc("respondTime")); break; case NODE: criteria.addOrder(Order.desc("node.label")); break; case INTERFACE: criteria.addOrder(Order.desc("ipAddress")); break; case SERVICE: criteria.addOrder(Order.desc("serviceType.name")); break; case ID: criteria.addOrder(Order.desc("notifyId")); break; case SEVERITY: criteria.addOrder(Order.desc("event.eventSeverity")); break; case REVERSE_RESPONDER: criteria.addOrder(Order.asc("answeredBy")); break; case REVERSE_PAGETIME: criteria.addOrder(Order.asc("pageTime")); break; case REVERSE_RESPONDTIME: criteria.addOrder(Order.asc("respondTime")); break; case REVERSE_NODE: criteria.addOrder(Order.asc("node.label")); break; case REVERSE_INTERFACE: criteria.addOrder(Order.asc("ipAddress")); break; case REVERSE_SERVICE: criteria.addOrder(Order.asc("serviceType.name")); break; case REVERSE_ID: criteria.addOrder(Order.asc("notifyId")); break; case REVERSE_SEVERITY: criteria.addOrder(Order.asc("event.eventSeverity")); break; } } }); return criteria; }
From source file:org.opennms.web.outage.DaoWebOutageRepository.java
License:Open Source License
private OnmsCriteria getOnmsCriteria(final OutageCriteria outageCriteria) { final OnmsCriteria criteria = new OnmsCriteria(OnmsOutage.class); criteria.createAlias("monitoredService", "monitoredService"); criteria.createAlias("monitoredService.ipInterface", "ipInterface"); criteria.createAlias("monitoredService.ipInterface.node", "node"); criteria.createAlias("monitoredService.serviceType", "serviceType"); outageCriteria.visit(new OutageCriteriaVisitor<RuntimeException>() { @Override// w ww . j a v a 2 s.c om public void visitOutageType(OutageType ackType) throws RuntimeException { if (ackType == OutageType.CURRENT) { criteria.add(Restrictions.isNull("ifRegainedService")); } else if (ackType == OutageType.RESOLVED) { criteria.add(Restrictions.isNotNull("ifRegainedService")); } } @Override public void visitFilter(Filter filter) throws RuntimeException { criteria.add(filter.getCriterion()); } @Override public void visitGroupBy() throws RuntimeException { } @Override public void visitLimit(int limit, int offset) throws RuntimeException { criteria.setMaxResults(limit); criteria.setFirstResult(offset); } @Override public void visitSortStyle(SortStyle sortStyle) throws RuntimeException { switch (sortStyle) { case FOREIGNSOURCE: criteria.addOrder(Order.desc("node.foreignSource")); break; case NODE: criteria.addOrder(Order.desc("node.label")); break; case INTERFACE: criteria.addOrder(Order.desc("ipInterface.ipAddress")); break; case SERVICE: criteria.addOrder(Order.desc("serviceType.name")); break; case IFLOSTSERVICE: criteria.addOrder(Order.desc("ifLostService")); break; case IFREGAINEDSERVICE: criteria.addOrder(Order.desc("ifRegainedService")); break; case ID: criteria.addOrder(Order.desc("id")); break; case REVERSE_FOREIGNSOURCE: criteria.addOrder(Order.asc("node.foreignSource")); break; case REVERSE_NODE: criteria.addOrder(Order.asc("node.label")); break; case REVERSE_INTERFACE: criteria.addOrder(Order.asc("ipInterface.ipAddress")); break; case REVERSE_SERVICE: criteria.addOrder(Order.asc("serviceType.name")); break; case REVERSE_IFLOSTSERVICE: criteria.addOrder(Order.asc("ifLostService")); break; case REVERSE_IFREGAINEDSERVICE: criteria.addOrder(Order.asc("ifRegainedService")); break; case REVERSE_ID: criteria.addOrder(Order.asc("id")); break; default: throw new IllegalArgumentException("Unknown SortStyle: " + sortStyle); } } }); return criteria; }
From source file:org.opennms.web.svclayer.outage.OutagesFilteringView.java
License:Open Source License
/** * <p>buildCriteria</p>/*from w ww .j ava2s .co m*/ * * @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.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//ww w . ja v a2 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 va 2 s.c o 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); }