Example usage for org.hibernate.criterion Restrictions isNotNull

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

Introduction

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

Prototype

public static Criterion isNotNull(String propertyName) 

Source Link

Document

Apply an "is not null" constraint to the named property

Usage

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);
}