Example usage for org.hibernate.criterion Restrictions le

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

Introduction

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

Prototype

public static SimpleExpression le(String propertyName, Object value) 

Source Link

Document

Apply a "less than or equal" constraint to the named property

Usage

From source file:com.eucalyptus.cloudwatch.domain.listmetrics.ListMetricManager.java

License:Open Source License

/**
 * Returns the metrics that are associated with the applied parameters
 * @param accountId the account Id.  If null, this filter will not be used.
 * @param metricName the metric name.  If null, this filter will not be used.
 * @param namespace the namespace.  If null, this filter will not be used.
 * @param dimensionMap the dimensions (name/value) to filter against.  Only metrics containing all these dimensions will be returned (it is only a subset match, not exact).  If null, this filter will not be used.
 * @param after the time after which all metrics must have been updated (last seen).  If null, this filter will not be used.
 * @param before the time before which all metrics must have been updated (last seen). If null, this filter will not be used.
 * @param maxRecords TODO//from www  .j  a v  a2 s .c om
 * @param nextToken TODO
 * @return the collection of metrics, filtered by the input
 */
public static List<ListMetric> listMetrics(String accountId, String metricName, String namespace,
        Map<String, String> dimensionMap, Date after, Date before, Integer maxRecords, String nextToken)
        throws CloudWatchException {
    if (dimensionMap != null && dimensionMap.size() > ListMetric.MAX_DIM_NUM) {
        throw new IllegalArgumentException("Too many dimensions " + dimensionMap.size());
    }
    EntityTransaction db = Entities.get(ListMetric.class);
    try {
        Date nextTokenCreatedTime = NextTokenUtils.getNextTokenCreatedTime(nextToken, ListMetric.class, false);
        Map<String, String> sortedDimensionMap = new TreeMap<String, String>();
        Criteria criteria = Entities.createCriteria(ListMetric.class);
        if (accountId != null) {
            criteria = criteria.add(Restrictions.eq("accountId", accountId));
        }
        if (metricName != null) {
            criteria = criteria.add(Restrictions.eq("metricName", metricName));
        }
        if (namespace != null) {
            criteria = criteria.add(Restrictions.eq("namespace", namespace));
        }
        if (before != null) {
            criteria = criteria.add(Restrictions.le("lastUpdateTimestamp", before));
        }
        if (after != null) {
            criteria = criteria.add(Restrictions.ge("lastUpdateTimestamp", after));
        }
        if (dimensionMap != null && !dimensionMap.isEmpty()) {
            // sort the map 
            sortedDimensionMap.putAll(dimensionMap);
            // now we are going to add a bunch of restrictions to the criteria...
            // note though there are certain dimensions we don't need to check.
            // For example if we have two dimensions, we don't need to check dimension 10 for
            // the first item or dimension 1 for the last item.
            int numDimensions = sortedDimensionMap.size();
            int lowDimNum = 1;
            int highDimNum = ListMetric.MAX_DIM_NUM + 1 - numDimensions;
            for (Map.Entry<String, String> dimEntry : sortedDimensionMap.entrySet()) {
                Disjunction or = Restrictions.disjunction();
                for (int i = lowDimNum; i <= highDimNum; i++) {
                    or.add(Restrictions.conjunction()
                            .add(Restrictions.eq("dim" + i + "Name", dimEntry.getKey()))
                            .add(Restrictions.eq("dim" + i + "Value", dimEntry.getValue())));
                }
                lowDimNum++;
                highDimNum++;
                criteria = criteria.add(or);
            }
        }
        criteria = NextTokenUtils.addNextTokenConstraints(maxRecords, nextToken, nextTokenCreatedTime,
                criteria);
        List<ListMetric> dbResult = (List<ListMetric>) criteria.list();
        db.commit();
        return dbResult;
    } catch (RuntimeException ex) {
        Logs.extreme().error(ex, ex);
        throw ex;
    } finally {
        if (db.isActive())
            db.rollback();
    }
}

From source file:com.eucalyptus.simpleworkflow.SimpleWorkflowService.java

License:Open Source License

private static void buildFilters(final ClosedWorkflowExecutionFilterParameters parameters,
        final Conjunction filter, final Map<String, String> aliases) {
    if (parameters.getCloseStatusFilter() != null) {
        filter.add(Restrictions.eq("closeStatus",
                WorkflowExecution.CloseStatus.fromString(parameters.getCloseStatusFilter().getStatus())));
    }//from w  ww . j  a va2s . c  om
    if (parameters.getCloseTimeFilter() != null) {
        if (parameters.getCloseTimeFilter().getOldestDate() != null) {
            filter.add(Restrictions.ge("closeTimestamp", parameters.getCloseTimeFilter().getOldestDate()));
        }
        if (parameters.getCloseTimeFilter().getLatestDate() != null) {
            filter.add(Restrictions.le("closeTimestamp", parameters.getCloseTimeFilter().getLatestDate()));
        }
    }
    buildFilters((WorkflowExecutionFilterParameters) parameters, filter, aliases);
}

From source file:com.eucalyptus.simpleworkflow.SimpleWorkflowService.java

License:Open Source License

private static void buildFilters(final WorkflowExecutionFilterParameters parameters, final Conjunction filter,
        final Map<String, String> aliases) {
    if (parameters.getExecutionFilter() != null) {
        filter.add(Restrictions.eq("workflowId", parameters.getExecutionFilter().getWorkflowId()));
    }// w w  w  .  ja  v a2 s  .  co  m
    if (parameters.getStartTimeFilter() != null) {
        if (parameters.getStartTimeFilter().getOldestDate() != null) {
            filter.add(Restrictions.ge("creationTimestamp", parameters.getStartTimeFilter().getOldestDate()));
        }
        if (parameters.getStartTimeFilter().getLatestDate() != null) {
            filter.add(Restrictions.le("creationTimestamp", parameters.getStartTimeFilter().getLatestDate()));
        }
    }
    if (parameters.getTagFilter() != null) {
        aliases.put("tagList", "tag");
        filter.add(Restrictions.eq("tag.elements", parameters.getTagFilter().getTag()));
    }
    if (parameters.getTypeFilter() != null) {
        if (parameters.getTypeFilter().getName() != null) {
            aliases.put("workflowType", "workflowType");
            filter.add(Restrictions.eq("workflowType.displayName", parameters.getTypeFilter().getName()));
        }
        if (parameters.getTypeFilter().getVersion() != null) {
            aliases.put("workflowType", "workflowType");
            filter.add(
                    Restrictions.eq("workflowType.workflowVersion", parameters.getTypeFilter().getVersion()));
        }
    }
}

From source file:com.evolveum.midpoint.repo.sql.query.matcher.Matcher.java

License:Apache License

protected Criterion basicMatch(ItemRestrictionOperation operation, String propertyName, Object value,
        boolean ignoreCase) throws QueryException {
    Criterion criterion;//from   ww  w . j  a v a  2 s.  co  m
    switch (operation) {
    case EQ:
        if (value == null) {
            criterion = Restrictions.isNull(propertyName);
        } else {
            criterion = Restrictions.eq(propertyName, value);
        }
        break;
    case GT:
        criterion = Restrictions.gt(propertyName, value);
        break;
    case GE:
        criterion = Restrictions.ge(propertyName, value);
        break;
    case LT:
        criterion = Restrictions.lt(propertyName, value);
        break;
    case LE:
        criterion = Restrictions.le(propertyName, value);
        break;
    case NOT_NULL:
        criterion = Restrictions.isNotNull(propertyName);
        break;
    case NULL:
        criterion = Restrictions.isNull(propertyName);
        break;
    case STARTS_WITH:
        criterion = Restrictions.like(propertyName, (String) value, MatchMode.START);
        break;
    case ENDS_WITH:
        criterion = Restrictions.like(propertyName, (String) value, MatchMode.END);
        break;
    case SUBSTRING:
        criterion = Restrictions.like(propertyName, (String) value, MatchMode.ANYWHERE);
        break;
    default:
        throw new QueryException("Unknown operation '" + operation + "'.");
    }

    if (ignoreCase && (value instanceof String) && (criterion instanceof SimpleExpression)) {
        criterion = ((SimpleExpression) criterion).ignoreCase();
    }

    return criterion;
}

From source file:com.evolveum.midpoint.repo.sql.QueryInterpreterTest.java

License:Apache License

@Test
public void queryTrigger() throws Exception {
    final Date NOW = new Date();

    Session session = open();//from   w  w  w .  j a  va2s .  c o m
    try {
        Criteria main = session.createCriteria(RObject.class, "o");
        ProjectionList projections = Projections.projectionList();
        addFullObjectProjectionList("o", projections, false);
        main.setProjection(projections);

        Criteria d = main.createCriteria("trigger", "t", JoinType.LEFT_OUTER_JOIN);
        d.add(Restrictions.le("t.timestamp", new Timestamp(NOW.getTime())));

        String expected = HibernateToSqlTranslator.toSql(main);

        XMLGregorianCalendar thisScanTimestamp = XmlTypeConverter.createXMLGregorianCalendar(NOW.getTime());

        SchemaRegistry registry = prismContext.getSchemaRegistry();
        PrismObjectDefinition objectDef = registry.findObjectDefinitionByCompileTimeClass(ObjectType.class);
        ItemPath triggerPath = new ItemPath(ObjectType.F_TRIGGER, TriggerType.F_TIMESTAMP);
        //        PrismContainerDefinition triggerContainerDef = objectDef.findContainerDefinition(triggerPath);
        ObjectFilter filter = LessFilter.createLess(triggerPath, objectDef, thisScanTimestamp, true);
        ObjectQuery query = ObjectQuery.createObjectQuery(filter);
        String real = getInterpretedQuery(session, ObjectType.class, query);

        LOGGER.info("exp. query>\n{}\nreal query>\n{}", new Object[] { expected, real });
        AssertJUnit.assertEquals(expected, real);
    } finally {
        close(session);
    }
}

From source file:com.evolveum.midpoint.repo.sql.QueryInterpreterTest.java

License:Apache License

@Test
public void test360queryMetadataTimestamp() throws Exception {
    Session session = open();/*from www . java2s  .  co  m*/

    try {
        Criteria main = session.createCriteria(RReportOutput.class, "r");
        ProjectionList projections = Projections.projectionList();
        addFullObjectProjectionList("r", projections, false);
        main.setProjection(projections);

        XMLGregorianCalendar timeXml = XMLGregorianCalendarType.asXMLGregorianCalendar(new Date());

        main.add(Restrictions.le("r.createTimestamp", timeXml));
        String expected = HibernateToSqlTranslator.toSql(main);

        LessFilter less = LessFilter.createLess(
                new ItemPath(ReportOutputType.F_METADATA, MetadataType.F_CREATE_TIMESTAMP),
                ReportOutputType.class, prismContext, timeXml, true);

        String real = getInterpretedQuery(session, ReportOutputType.class, ObjectQuery.createObjectQuery(less));

        LOGGER.info("exp. query>\n{}\nreal query>\n{}", new Object[] { expected, real });
        AssertJUnit.assertEquals(expected, real);
    } finally {
        close(session);
    }
}

From source file:com.floreantpos.model.dao.AttendenceHistoryDAO.java

License:Open Source License

public List<User> findNumberOfClockedInUserAtHour(Date fromDay, Date toDay, int hour, UserType userType,
        Terminal terminal) {//from ww w .  j a  v a2s  .  c o m
    Session session = null;

    ArrayList<User> users = new ArrayList<User>();

    try {
        session = getSession();
        Criteria criteria = session.createCriteria(getReferenceClass());
        criteria.add(Restrictions.ge(AttendenceHistory.PROP_CLOCK_IN_TIME, fromDay));
        criteria.add(Restrictions.le(AttendenceHistory.PROP_CLOCK_IN_TIME, toDay));
        criteria.add(Restrictions.le(AttendenceHistory.PROP_CLOCK_IN_HOUR, new Short((short) hour)));

        if (userType != null) {
            criteria.createAlias(AttendenceHistory.PROP_USER, "u"); //$NON-NLS-1$
            criteria.add(Restrictions.eq("u.type", userType)); //$NON-NLS-1$
        }
        if (terminal != null) {
            criteria.add(Restrictions.eq(Ticket.PROP_TERMINAL, terminal));
        }

        List list = criteria.list();
        for (Object object : list) {
            AttendenceHistory history = (AttendenceHistory) object;

            if (!history.isClockedOut()) {
                users.add(history.getUser());
            } else if (history.getClockOutHour() >= hour) {
                users.add(history.getUser());
            }
        }
        return users;
    } catch (Exception e) {
        throw new PosException(Messages.getString("AttendenceHistoryDAO.2"), e); //$NON-NLS-1$
    } finally {
        if (session != null) {
            closeSession(session);
        }
    }
}

From source file:com.floreantpos.model.dao.AttendenceHistoryDAO.java

License:Open Source License

public List<User> findNumberOfClockedInUserAtShift(Date fromDay, Date toDay, Shift shift, UserType userType,
        Terminal terminal) {/*from w  w w  .  ja v a 2  s .co  m*/
    Session session = null;

    ArrayList<User> users = new ArrayList<User>();

    try {
        session = getSession();
        Criteria criteria = session.createCriteria(getReferenceClass());
        criteria.add(Restrictions.ge(AttendenceHistory.PROP_CLOCK_IN_TIME, fromDay));
        criteria.add(Restrictions.le(AttendenceHistory.PROP_CLOCK_IN_TIME, toDay));
        criteria.add(Restrictions.le(AttendenceHistory.PROP_SHIFT, shift));

        if (userType != null) {
            criteria.createAlias(AttendenceHistory.PROP_USER, "u"); //$NON-NLS-1$
            criteria.add(Restrictions.eq("u.type", userType)); //$NON-NLS-1$
        }
        if (terminal != null) {
            criteria.add(Restrictions.eq(Ticket.PROP_TERMINAL, terminal));
        }

        List list = criteria.list();
        for (Object object : list) {
            AttendenceHistory history = (AttendenceHistory) object;

            //            if (!history.isClockedOut()) {
            //               users.add(history.getUser());
            //            }
            //            else if (history.getClockOutHour() >= hour) {
            //               users.add(history.getUser());
            //            }
            users.add(history.getUser());
        }
        return users;
    } catch (Exception e) {
        throw new PosException(Messages.getString("AttendenceHistoryDAO.5"), e); //$NON-NLS-1$
    } finally {
        if (session != null) {
            closeSession(session);
        }
    }
}

From source file:com.floreantpos.model.dao.AttendenceHistoryDAO.java

License:Open Source License

public List<PayrollReportData> findPayroll(Date from, Date to) {
    Session session = null;/*from  ww w . j  av a 2s .  co m*/

    ArrayList<PayrollReportData> list = new ArrayList<PayrollReportData>();

    try {
        session = getSession();
        Criteria criteria = session.createCriteria(AttendenceHistory.class);
        criteria.add(Restrictions.ge(AttendenceHistory.PROP_CLOCK_IN_TIME, from));
        criteria.add(Restrictions.le(AttendenceHistory.PROP_CLOCK_OUT_TIME, to));
        criteria.addOrder(Order.asc(AttendenceHistory.PROP_USER));
        List list2 = criteria.list();

        for (Iterator iterator = list2.iterator(); iterator.hasNext();) {
            AttendenceHistory history = (AttendenceHistory) iterator.next();
            PayrollReportData data = new PayrollReportData();
            data.setFrom(history.getClockInTime());
            data.setTo(history.getClockOutTime());
            data.setDate(history.getClockInTime());
            data.setUser(history.getUser());
            data.calculate();

            list.add(data);
        }

        return list;
    } catch (Exception e) {
        throw new PosException(Messages.getString("AttendenceHistoryDAO.6"), e); //$NON-NLS-1$
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:com.floreantpos.model.dao.AttendenceHistoryDAO.java

License:Open Source License

public List<AttendanceReportData> findAttendance(Date from, Date to, User user) {
    Session session = null;//  w ww .j a v a  2  s  .  c  o  m

    ArrayList<AttendanceReportData> list = new ArrayList<AttendanceReportData>();

    try {
        session = getSession();
        Criteria criteria = session.createCriteria(AttendenceHistory.class);
        criteria.add(Restrictions.ge(AttendenceHistory.PROP_CLOCK_IN_TIME, from));
        criteria.add(Restrictions.le(AttendenceHistory.PROP_CLOCK_OUT_TIME, to));
        criteria.addOrder(Order.asc(AttendenceHistory.PROP_USER));

        if (user != null) {
            criteria.add(Restrictions.eq(AttendenceHistory.PROP_USER, user));
        }

        List list2 = criteria.list();

        for (Iterator iterator = list2.iterator(); iterator.hasNext();) {
            AttendenceHistory history = (AttendenceHistory) iterator.next();
            AttendanceReportData data = new AttendanceReportData();
            data.setClockIn(history.getClockInTime());
            data.setClockOut(history.getClockOutTime());
            data.setUser(history.getUser());
            data.setName(history.getUser().getFirstName());
            data.calculate();

            list.add(data);
        }

        return list;
    } catch (Exception e) {
        throw new PosException("Unable to find Attendance", e); //$NON-NLS-1$
    } finally {
        if (session != null) {
            session.close();
        }
    }
}