Example usage for org.hibernate.criterion Restrictions gt

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

Introduction

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

Prototype

public static SimpleExpression gt(String propertyName, Object value) 

Source Link

Document

Apply a "greater than" constraint to the named property

Usage

From source file:fr.gael.dhus.olingo.v1.SQLVisitor.java

License:Open Source License

private Criterion internalCriterionComparative(BinaryOperator operator, String property, Object value) {
    Criterion criterion;//from www.  ja v a 2s .  c o  m
    switch (operator) {
    case EQ: {
        criterion = Restrictions.eq(property, value);
        break;
    }
    case NE: {
        criterion = Restrictions.ne(property, value);
        break;
    }
    case GT: {
        criterion = Restrictions.gt(property, value);
        break;
    }
    case GE: {
        criterion = Restrictions.ge(property, value);
        break;
    }
    case LT: {
        criterion = Restrictions.lt(property, value);
        break;
    }
    case LE: {
        criterion = Restrictions.le(property, value);
        break;
    }
    default:
        throw new UnsupportedOperationException("Unsupported operation: " + operator.toUriLiteral());
    }
    return criterion;
}

From source file:gov.nih.nci.caintegrator.data.DateComparisonCriterionHandler.java

License:BSD License

/**
 * {@inheritDoc}//from w w w.j  a va 2s. c o m
 */
@Override
Criterion translate() {
    if (dateComparisonCriterion.getDateComparisonOperator() != null) {
        DateComparisonOperatorEnum operator = dateComparisonCriterion.getDateComparisonOperator();
        switch (operator) {
        case EQUAL:
            return Restrictions.eq(DATE_VALUE_COLUMN, dateComparisonCriterion.getDateValue());
        case GREATER:
            return Restrictions.gt(DATE_VALUE_COLUMN, dateComparisonCriterion.getDateValue());
        case GREATEROREQUAL:
            return Restrictions.ge(DATE_VALUE_COLUMN, dateComparisonCriterion.getDateValue());
        case LESS:
            return Restrictions.lt(DATE_VALUE_COLUMN, dateComparisonCriterion.getDateValue());
        case LESSOREQUAL:
            return Restrictions.le(DATE_VALUE_COLUMN, dateComparisonCriterion.getDateValue());
        case NOTEQUAL:
            return Restrictions.ne(DATE_VALUE_COLUMN, dateComparisonCriterion.getDateValue());
        default:
            throw new IllegalStateException("Unknown DateComparisonOperator: " + operator);
        }
    } else {
        throw new IllegalStateException("DateComparisonOperator is not set");
    }

}

From source file:gov.nih.nci.caintegrator.data.NumericComparisonCriterionHandler.java

License:BSD License

/**
 * {@inheritDoc}//from   w ww  .  ja v  a 2 s.c o  m
 */
@Override
Criterion translate() {
    if (numericComparisonCriterion.getNumericComparisonOperator() != null) {
        NumericComparisonOperatorEnum operator = numericComparisonCriterion.getNumericComparisonOperator();
        switch (operator) {
        case EQUAL:
            return Restrictions.eq(NUMERIC_VALUE_COLUMN, numericComparisonCriterion.getNumericValue());
        case GREATER:
            return Restrictions.gt(NUMERIC_VALUE_COLUMN, numericComparisonCriterion.getNumericValue());
        case GREATEROREQUAL:
            return Restrictions.ge(NUMERIC_VALUE_COLUMN, numericComparisonCriterion.getNumericValue());
        case LESS:
            return Restrictions.lt(NUMERIC_VALUE_COLUMN, numericComparisonCriterion.getNumericValue());
        case LESSOREQUAL:
            return Restrictions.le(NUMERIC_VALUE_COLUMN, numericComparisonCriterion.getNumericValue());
        case NOTEQUAL:
            return Restrictions.ne(NUMERIC_VALUE_COLUMN, numericComparisonCriterion.getNumericValue());
        default:
            throw new IllegalStateException("Unknown NumericComparisonOperator: " + operator);
        }
    } else {
        throw new IllegalStateException("NumericComparisonOperator is not set");
    }

}

From source file:gr.abiss.calipso.domain.ColumnHeading.java

License:Open Source License

/**
 * this routine is a massive if-then construct that acts as a factory for
 * the right implementation of the responsibilities defined in the
 * "Processor" class (above) based on the type of ColumnHeading - the right
 * implementation will be returned. having everything in one place below,
 * makes it easy to maintain, as the logic of each of the methods are
 * closely interdependent for a given column type for e.g. the kind of
 * hibernate criteria needed depends on what is made available on the UI
 *//*from   w  w  w  .  j  a  v  a  2 s.c o  m*/
private Processor getProcessor() {
    if (isField()) {
        switch (field.getName().getType()) {
        // ==============================================================

        case 1:
        case 2:
        case 3:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(IN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    final Fragment fragment = new Fragment("fragParent", "multiSelect", container);
                    //final Map<String, String> options = field.getOptions();
                    List<CustomAttributeLookupValue> lookupValues = calipsoService.findLookupValues(space,
                            field.getName().getText());
                    // TODO: create a leaf-node only finder method in calipso service
                    List<CustomAttributeLookupValue> leafLookupValues = new LinkedList<CustomAttributeLookupValue>();

                    // leaf selection only for now
                    for (CustomAttributeLookupValue val : lookupValues) {
                        if (CollectionUtils.isEmpty(val.getChildren())) {
                            leafLookupValues.add(val);
                        }
                    }
                    lookupValues = null;

                    final CheckBoxMultipleChoice choice = new CheckBoxMultipleChoice("values", leafLookupValues,
                            new IChoiceRenderer<CustomAttributeLookupValue>() {

                                @Override
                                public Object getDisplayValue(CustomAttributeLookupValue object) {
                                    return fragment.getString(object.getNameTranslationResourceKey());
                                }

                                @Override
                                public String getIdValue(CustomAttributeLookupValue object, int index) {
                                    return object.getId() + "";
                                }
                            });
                    fragment.add(choice);
                    choice.setModel(new PropertyModel(filterCriteria, "values"));
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValueList()) {
                        List values = filterCriteria.getValues();
                        List<Integer> keys = new ArrayList<Integer>(values.size());
                        for (Object o : values) {
                            if (o instanceof CustomAttributeLookupValue) {
                                CustomAttributeLookupValue val = (CustomAttributeLookupValue) o;
                                keys.add(NumberUtils.createInteger(val.getId() + ""));
                            } else {
                                keys.add(NumberUtils.createInteger(o + ""));
                            }
                        }
                        criteria.add(Restrictions.in(getNameText(), keys));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValueList();
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueListFromQueryString(s);
                }
            };
        // ==============================================================
        case 4: // decimal number
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(EQ, NOT_EQ, GT, LT, BETWEEN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    Fragment fragment = new Fragment("fragParent", "textField", container);
                    TextField textField = new TextField("value", Double.class);
                    textField.setModel(new PropertyModel(filterCriteria, "value"));
                    fragment.add(textField);
                    if (filterCriteria.getExpression() == BETWEEN) {
                        TextField textField2 = new TextField("value2", Double.class);
                        textField2.setModel(new PropertyModel(filterCriteria, "value2"));
                        fragment.add(textField2);
                    } else {
                        fragment.add(new WebMarkupContainer("value2").setVisible(false));
                    }
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        Object value = filterCriteria.getValue();
                        switch (filterCriteria.getExpression()) {
                        case EQ:
                            criteria.add(Restrictions.eq(getNameText(), value));
                            break;
                        case NOT_EQ:
                            criteria.add(Restrictions.not(Restrictions.eq(name.text, value)));
                            break;
                        case GT:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            break;
                        case LT:
                            criteria.add(Restrictions.lt(getNameText(), value));
                            break;
                        case BETWEEN:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2()));
                            break;
                        default:
                        }
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(Double.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, Double.class);
                }

            };
        // ==============================================================
        case 6: // date
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(EQ, NOT_EQ, GT, LT, BETWEEN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    Fragment fragment = new Fragment("fragParent", "dateField", container);
                    DateField calendar = new DateField("value",
                            new PropertyModel(filterCriteria, "value")/*,
                                                                      false*/);
                    fragment.add(calendar);
                    if (filterCriteria.getExpression() == BETWEEN) {
                        DateField calendar2 = new DateField("value2",
                                new PropertyModel(filterCriteria, "value2")/*,
                                                                           false*/);
                        fragment.add(calendar2);
                    } else {
                        fragment.add(new WebMarkupContainer("value2").setVisible(false));
                    }
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        Object value = filterCriteria.getValue();
                        switch (filterCriteria.getExpression()) {
                        case EQ:
                            criteria.add(Restrictions.eq(getNameText(), value));
                            break;
                        case NOT_EQ:
                            criteria.add(Restrictions.not(Restrictions.eq(getNameText(), value)));
                            break;
                        case GT:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            break;
                        case LT:
                            criteria.add(Restrictions.lt(getNameText(), value));
                            break;
                        case BETWEEN:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2()));
                            break;
                        default:
                        }
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(Date.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, Date.class);
                }
            };
        // ==============================================================
        case 5: // free text
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(CONTAINS);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    return getTextFieldFragment(container);
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(),
                                MatchMode.ANYWHERE));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(String.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, String.class);
                }
            };
        // TODO:
        case 10:// organization
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(CONTAINS);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    return getTextFieldFragment(container);
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(),
                                MatchMode.ANYWHERE));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(String.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, String.class);
                }
            };
        // TODO:
        case 11:// file
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(CONTAINS);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    return getTextFieldFragment(container);
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(),
                                MatchMode.ANYWHERE));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(String.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, String.class);
                }
            };
        case 200:// attachment
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(CONTAINS);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    return getTextFieldFragment(container);
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(),
                                MatchMode.ANYWHERE));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(String.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, String.class);
                }
            };
        case 20:// is user
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(CONTAINS);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    return getTextFieldFragment(container);
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(),
                                MatchMode.ANYWHERE));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(String.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, String.class);
                }
            };

        case 25:// is user
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(CONTAINS);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    return getTextFieldFragment(container);
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(),
                                MatchMode.ANYWHERE));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(String.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, String.class);
                }
            };
        case 100: // Assignable spaces (move to space)
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(IN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    Fragment fragment = new Fragment("fragParent", "multiSelect", container);
                    final Map<String, String> options = field.getOptions();
                    List<String> keys = null;
                    if (options != null) {
                        keys = new ArrayList(options.keySet()); // bound
                        // value
                    } else {
                        keys = new ArrayList();
                    }

                    List<Space> spaces = new LinkedList<Space>();
                    for (String key : keys) {
                        // spaces.add(ComponentUtils.getJtrac(c).loadSpace(Long.parseLong(key)));
                        spaces.add(calipsoService.loadSpace(Long.parseLong(key)));
                    } // for
                    CheckBoxMultipleChoice choice = new CheckBoxMultipleChoice("values", spaces,
                            new IChoiceRenderer<Space>() {
                                private static final long serialVersionUID = 1L;

                                @Override
                                public Object getDisplayValue(Space o) {
                                    logger.info("Option for space: " + o);
                                    String name = o.getName();
                                    return name != null ? name : o.getId();
                                }

                                @Override
                                public String getIdValue(Space o, int index) {
                                    return o.getId() + "";
                                }
                            });

                    fragment.add(choice);
                    choice.setModel(new PropertyModel(filterCriteria, "values"));
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValueList()) {
                        List values = filterCriteria.getValues();
                        criteria.add(Restrictions.in(getNameText(), values));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValueList();
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueListFromQueryString(s);
                }
            };
        // ==============================================================
        default:
            throw new RuntimeException("Unknown Column Heading " + name);
        }
    } else { // this is not a custom field but one of the "built-in" columns
        switch (name) {
        // ==============================================================
        case ID:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(EQ);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    return getTextFieldFragment(container);
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        // should never come here for criteria: see
                        // ItemSearch#getRefId()
                        throw new RuntimeException("should not come here for 'id'");
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(String.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, String.class);
                }
            };
        // ==============================================================
        case SUMMARY:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(CONTAINS);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    return getTextFieldFragment(container);
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(),
                                MatchMode.ANYWHERE));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(String.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, String.class);
                }
            };
        // ==============================================================
        case DETAIL:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(CONTAINS);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    return getTextFieldFragment(container);
                }

                void addRestrictions(DetachedCriteria criteria) {
                    // do nothing, 'detail' already processed, see:
                    // ItemSearch#getSearchText()
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(String.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, String.class);
                }
            };

        // ==============================================================
        case STATUS:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(IN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    Fragment fragment = new Fragment("fragParent", "multiSelect", container);
                    // status selectable only when context space is not null
                    // final Map<Integer, String> options =
                    // space.getMetadata().getStatesMap();
                    final Map<Integer, String> options;
                    if (space == null) {
                        options = State.getSpecialStates();
                    } else {
                        options = space.getMetadata().getStatesMap();
                    }
                    options.remove(State.NEW);
                    CheckBoxMultipleChoice choice = new CheckBoxMultipleChoice("values",
                            new ArrayList(options.keySet()), new IChoiceRenderer() {
                                public Object getDisplayValue(Object o) {
                                    return options.get(o);
                                }

                                public String getIdValue(Object o, int i) {
                                    return o.toString();
                                }
                            });
                    fragment.add(choice);
                    choice.setModel(new PropertyModel(filterCriteria, "values"));
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValueList()) {
                        criteria.add(Restrictions.in(getNameText(), filterCriteria.getValues()));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValueList();
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    //logger.info("loadFromQueryString: "+s);
                    setStatusListFromQueryString(s);
                }
            };
        // ==============================================================
        case ASSIGNED_TO:
        case LOGGED_BY:
        case REPORTED_BY:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(IN, IS_NULL);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    Fragment fragment = new Fragment("fragParent", "multiSelect", container);
                    List<User> users = null;
                    if (space == null) {
                        users = calipsoService.findUsersForUser(user);
                    } else {
                        users = calipsoService.findUsersForSpace(space.getId());
                    }
                    CheckBoxMultipleChoice choice = new CheckBoxMultipleChoice("values", users,
                            new IChoiceRenderer() {
                                public Object getDisplayValue(Object o) {
                                    return ((User) o).getFullName();
                                }

                                public String getIdValue(Object o, int i) {
                                    return ((User) o).getId() + "";
                                }
                            });
                    fragment.add(choice);
                    choice.setModel(new PropertyModel(filterCriteria, "values"));
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValueList()) {
                        criteria.add(Restrictions.in(getNameText(), filterCriteria.getValues()));
                    } else if (filterIsNullExpression()) {
                        criteria.add(Restrictions.isNull(getNameText()));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromUserList();
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setUserListFromQueryString(s, calipsoService);
                }
            };
        // ==============================================================

        case ASSET_TYPE:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(IN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    Fragment fragment = new Fragment("fragParent", "multiSelect", container);

                    List<AssetType> assetTypes = calipsoService.findAllAssetTypes();
                    CheckBoxMultipleChoice choice = new CheckBoxMultipleChoice("values", assetTypes,
                            new IChoiceRenderer() {
                                public Object getDisplayValue(Object o) {
                                    return ((AssetType) o).getName();
                                }

                                public String getIdValue(Object o, int i) {
                                    return String.valueOf(((AssetType) o).getId());
                                }
                            });
                    fragment.add(choice);
                    choice.setModel(new PropertyModel(filterCriteria, "values"));

                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValueList()) {
                        criteria.createAlias("assets", "assets");
                        criteria.add(Restrictions.in("assets.assetType", filterCriteria.getValues()));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromAssetTypeList();
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setAssetTypeListFromQueryString(s, user, calipsoService);
                }
            };
        // ==============================================================
        case TIME_STAMP:
        case DUE_TO:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(BETWEEN, GT, LT, EQ, NOT_EQ);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    Fragment fragment = new Fragment("fragParent", "dateField", container);
                    DateField calendar = new DateField("value",
                            new PropertyModel(filterCriteria, "value")/*,
                                                                      false*/);
                    fragment.add(calendar);
                    if (filterCriteria.getExpression() == BETWEEN) {
                        DateField calendar2 = new DateField("value2",
                                new PropertyModel(filterCriteria, "value2")/*,
                                                                           false*/);
                        fragment.add(calendar2);
                    } else {
                        fragment.add(new WebMarkupContainer("value2").setVisible(false));
                    }
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        Object value = filterCriteria.getValue();
                        switch (filterCriteria.getExpression()) {
                        case EQ:
                            criteria.add(Restrictions.eq(getNameText(), value));
                            break;
                        case NOT_EQ:
                            criteria.add(Restrictions.not(Restrictions.eq(getNameText(), value)));
                            break;
                        case GT:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            break;
                        case LT:
                            criteria.add(Restrictions.lt(getNameText(), value));
                            break;
                        case BETWEEN:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2()));
                            break;
                        default:
                        }
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(Date.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, Date.class);
                }
            };
        // ==============================================================
        case SPACE:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(IN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    Fragment fragment = new Fragment("fragParent", "multiSelect", container);
                    List<Space> spaces = new ArrayList(user.getSpaces());
                    CheckBoxMultipleChoice choice = new CheckBoxMultipleChoice("values", spaces,
                            new IChoiceRenderer() {
                                public Object getDisplayValue(Object o) {
                                    return ((Space) o).getName();
                                }

                                public String getIdValue(Object o, int i) {
                                    return ((Space) o).getId() + "";
                                }
                            });
                    fragment.add(choice);
                    choice.setModel(new PropertyModel(filterCriteria, "values"));
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    // already handled space as special case, see
                    // ItemSearch#getSelectedSpaces()
                }

                String getAsQueryString() {
                    return getQueryStringFromSpaceList();
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setSpaceListFromQueryString(s, user, calipsoService);
                }
            };

        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        case TOTAL_RESPONSE_TIME:
        case TIME_FROM_CREATION_TO_FIRST_REPLY:
        case TIME_FROM_CREATION_TO_CLOSE:
            return new ProcessorCustom() {
                private Class validationClass = null;

                List<Expression> getValidFilterExpressions() {
                    return getAsList(BETWEEN, GT, LT);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    Fragment fragment = new Fragment("fragParent", "effortField", container);
                    WebMarkupContainer days = new WebMarkupContainer("days");

                    if (name.equals(TOTAL_RESPONSE_TIME)) {
                        validationClass = Double.class;
                    } else {
                        validationClass = Long.class;
                    }

                    TextField textField = new TextField("value", validationClass);
                    days.add(textField);
                    // textField.setModel(new PropertyModel(this,
                    // "filterCriteria.value"));
                    textField.setModel(new PropertyModel(filterCriteria, "value"));
                    fragment.add(days);

                    WebMarkupContainer days2 = new WebMarkupContainer("days2");
                    if (filterCriteria.getExpression() == BETWEEN) {
                        TextField textField2 = new TextField("value2", validationClass);
                        days2.add(textField2);
                        // textField2.setModel(new PropertyModel(this,
                        // "filterCriteria.value2"));
                        textField2.setModel(new PropertyModel(filterCriteria, "value2"));
                    } // if
                    else {
                        fragment.add(new WebMarkupContainer("value2").setVisible(false));
                        days2.setVisible(false);
                    } // else
                    fragment.add(days2);
                    // fragment.setVisible(isVisible());
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                }

                void addRestrictions(CustomCriteria customCriteria) {
                    if (filterHasValue()) {
                        String criteriaObjectClass = null;
                        if (validationClass != null) {
                            criteriaObjectClass = validationClass.getCanonicalName();
                        } // if

                        Object value = filterCriteria.getValue();
                        Object value2 = filterCriteria.getValue2();

                        Double v1 = new Double(value.toString());
                        value = v1 * 86400;// In Seconds
                        switch (filterCriteria.getExpression()) {
                        case GT:
                            customCriteria.add(name.getText(), CustomCriteria.GT, value.toString(),
                                    criteriaObjectClass);
                            break;
                        case LT:
                            customCriteria.add(name.getText(), CustomCriteria.LT, value.toString(),
                                    criteriaObjectClass);
                            break;
                        case BETWEEN:
                            Double v2 = new Double(value2.toString());
                            value2 = v2 * 86400; // In Seconds
                            customCriteria.add(name.getText(), CustomCriteria.GET, value.toString(),
                                    criteriaObjectClass);
                            customCriteria.add(name.getText(), CustomCriteria.LET, value2.toString(),
                                    criteriaObjectClass);
                            break;
                        default:
                        }
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(Long.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, Long.class);
                }
            };

        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        case PLANNED_EFFORT:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(EQ, NOT_EQ, GT, LT, BETWEEN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space,
                        CalipsoService calipsoService) {
                    Fragment fragment = new Fragment("fragParent", "effortField2", container);
                    EffortField effortField = new EffortField("value",
                            new PropertyModel(filterCriteria, "value"), false);
                    fragment.add(effortField);
                    if (filterCriteria.getExpression() == BETWEEN) {
                        EffortField effortField2 = new EffortField("value2",
                                new PropertyModel(filterCriteria, "value2"), false);
                        fragment.add(new WebMarkupContainer("and"));
                        fragment.add(effortField2);
                    } else {
                        fragment.add(new WebMarkupContainer("and").setVisible(false));
                        fragment.add(new WebMarkupContainer("value2").setVisible(false));
                    }
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        Object value = filterCriteria.getValue();
                        switch (filterCriteria.getExpression()) {
                        case EQ:
                            criteria.add(Restrictions.eq(getNameText(), value));
                            break;
                        case NOT_EQ:
                            criteria.add(Restrictions.not(Restrictions.eq(getNameText(), value)));
                            break;
                        case GT:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            break;
                        case LT:
                            criteria.add(Restrictions.lt(getNameText(), value));
                            break;
                        case BETWEEN:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2()));
                            break;
                        default:
                        }
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(Integer.class);
                }

                void loadFromQueryString(String s, User user, CalipsoService calipsoService) {
                    setValueFromQueryString(s, Integer.class);
                }
            };

        // ==============================================================
        default:
            throw new RuntimeException("Unknown Column Heading " + name);
        }
    }
}

From source file:grails.orm.HibernateCriteriaBuilder.java

License:Apache License

/**
 * Creates a "greater than" Criterion based on the specified property name and value
 * @param propertyName The property name
 * @param propertyValue The property value
 * @return A Criterion instance/* w ww.ja  v  a 2  s  .  c om*/
 */
public org.grails.datastore.mapping.query.api.Criteria gt(String propertyName, Object propertyValue) {
    if (!validateSimpleExpression()) {
        throwRuntimeException(new IllegalArgumentException("Call to [gt] with propertyName [" + propertyName
                + "] and value [" + propertyValue + "] not allowed here."));
    }

    propertyName = calculatePropertyName(propertyName);
    propertyValue = calculatePropertyValue(propertyValue);
    addToCriteria(Restrictions.gt(propertyName, propertyValue));
    return this;
}

From source file:helpers.OlymHelper.java

public static List<Sportista> searchSportists(String sportista, Zemlja zemlja, Sport sport, int disciplina,
        String gender, boolean medal) {
    Session session = HibernateUtil.getSessionFactory().openSession();
    Transaction tr = null;/*from w w w . j ava  2 s .c o  m*/
    List<Sportista> sportists = null;
    try {
        tr = session.beginTransaction();
        Criteria criteria = session.createCriteria(Sportista.class)
                .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
        Criteria criteria2 = null;
        if (sportista != null) {
            if (!sportista.isEmpty()) {
                criteria.add(Restrictions.ilike("name", sportista, MatchMode.ANYWHERE));
            }
        }
        if (zemlja != null) {
            criteria.add(Restrictions.eq("zemlja", zemlja));
        }
        if (disciplina != 0) {//i sport i disciplina izabrani
            if (criteria2 == null)
                criteria2 = criteria.createCriteria("spordisc");
            criteria2.add(Restrictions.eq("id", disciplina));
        }
        if (sport != null && disciplina == 0) {//samo sport izabran
            if (criteria2 == null)
                criteria2 = criteria.createCriteria("spordisc");
            criteria2.add(Restrictions.eq("sport", sport));
        }
        //constraint nad spordisc tabelom da naziv discipline bude ogranicen na onaj dati string
        if (gender != null) {
            criteria.add(Restrictions.eq("gender", gender));
        }
        if (medal) {
            criteria.add(Restrictions.gt("medals", 0));
        }

        sportists = criteria.list();

        tr.commit();
        boolean good = true;
    } catch (HibernateException e) {
        if (tr != null) {
            tr.rollback();
        }
    } finally {
        session.close();
    }

    return sportists;
}

From source file:info.jtrac.domain.ColumnHeading.java

License:Apache License

/**
 * this routine is a massive if-then construct that acts as a factory for the
 * right implementation of the responsibilities defined in the "Processor" class (above)
 * based on the type of ColumnHeading - the right implementation will be returned.
 * having everything in one place below, makes it easy to maintain, as the
 * logic of each of the methods are closely interdependent for a given column type
 * for e.g. the kind of hibernate criteria needed depends on what is made available on the UI
 *//*from ww w .  j av  a 2 s . co  m*/
private Processor getProcessor() {
    if (isField()) {
        switch (field.getName().getType()) {
        //==============================================================
        case 1:
        case 2:
        case 3:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(IN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) {
                    Fragment fragment = new Fragment("fragParent", "multiSelect", container);
                    final Map<String, String> options = field.getOptions();
                    JtracCheckBoxMultipleChoice choice = new JtracCheckBoxMultipleChoice("values",
                            new ArrayList(options.keySet()), new IChoiceRenderer() {
                                public Object getDisplayValue(Object o) {
                                    return options.get(o);
                                }

                                public String getIdValue(Object o, int i) {
                                    return o.toString();
                                }
                            });
                    fragment.add(choice);
                    choice.setModel(new PropertyModel(filterCriteria, "values"));
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValueList()) {
                        List values = filterCriteria.getValues();
                        List<Integer> keys = new ArrayList<Integer>(values.size());
                        for (Object o : values) {
                            keys.add(new Integer(o.toString()));
                        }
                        criteria.add(Restrictions.in(getNameText(), keys));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValueList();
                }

                void loadFromQueryString(String s, User user, Jtrac jtrac) {
                    setValueListFromQueryString(s);
                }
            };
        //==============================================================
        case 4: // decimal number  
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(EQ, NOT_EQ, GT, LT, BETWEEN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) {
                    Fragment fragment = new Fragment("fragParent", "textField", container);
                    TextField textField = new TextField("value", Double.class);
                    textField.setModel(new PropertyModel(filterCriteria, "value"));
                    fragment.add(textField);
                    if (filterCriteria.getExpression() == BETWEEN) {
                        TextField textField2 = new TextField("value2", Double.class);
                        textField.setModel(new PropertyModel(filterCriteria, "value2"));
                        fragment.add(textField2);
                    } else {
                        fragment.add(new WebMarkupContainer("value2").setVisible(false));
                    }
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        Object value = filterCriteria.getValue();
                        switch (filterCriteria.getExpression()) {
                        case EQ:
                            criteria.add(Restrictions.eq(getNameText(), value));
                            break;
                        case NOT_EQ:
                            criteria.add(Restrictions.not(Restrictions.eq(name.text, value)));
                            break;
                        case GT:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            break;
                        case LT:
                            criteria.add(Restrictions.lt(getNameText(), value));
                            break;
                        case BETWEEN:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2()));
                            break;
                        default:
                        }
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(Double.class);
                }

                void loadFromQueryString(String s, User user, Jtrac jtrac) {
                    setValueFromQueryString(s, Double.class);
                }

            };
        //==============================================================
        case 6: // date
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(EQ, NOT_EQ, GT, LT, BETWEEN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) {
                    Fragment fragment = new Fragment("fragParent", "dateField", container);
                    YuiCalendar calendar = new YuiCalendar("value", new PropertyModel(filterCriteria, "value"),
                            false);
                    fragment.add(calendar);
                    if (filterCriteria.getExpression() == BETWEEN) {
                        YuiCalendar calendar2 = new YuiCalendar("value2",
                                new PropertyModel(filterCriteria, "value2"), false);
                        fragment.add(calendar2);
                    } else {
                        fragment.add(new WebMarkupContainer("value2").setVisible(false));
                    }
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        Object value = filterCriteria.getValue();
                        switch (filterCriteria.getExpression()) {
                        case EQ:
                            criteria.add(Restrictions.eq(getNameText(), value));
                            break;
                        case NOT_EQ:
                            criteria.add(Restrictions.not(Restrictions.eq(getNameText(), value)));
                            break;
                        case GT:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            break;
                        case LT:
                            criteria.add(Restrictions.lt(getNameText(), value));
                            break;
                        case BETWEEN:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2()));
                            break;
                        default:
                        }
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(Date.class);
                }

                void loadFromQueryString(String s, User user, Jtrac jtrac) {
                    setValueFromQueryString(s, Date.class);
                }
            };
        //==============================================================
        case 5: // free text 
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(CONTAINS);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) {
                    return getTextFieldFragment(container);
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(),
                                MatchMode.ANYWHERE));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(String.class);
                }

                void loadFromQueryString(String s, User user, Jtrac jtrac) {
                    setValueFromQueryString(s, String.class);
                }
            };
        //==============================================================
        default:
            throw new RuntimeException("Unknown Column Heading " + name);
        }
    } else { // this is not a custom field but one of the "built-in" columns           
        switch (name) {
        //==============================================================
        case ID:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(EQ);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) {
                    return getTextFieldFragment(container);
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        // should never come here for criteria: see ItemSearch#getRefId()
                        throw new RuntimeException("should not come here for 'id'");
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(String.class);
                }

                void loadFromQueryString(String s, User user, Jtrac jtrac) {
                    setValueFromQueryString(s, String.class);
                }
            };
        //==============================================================
        case SUMMARY:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(CONTAINS);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) {
                    return getTextFieldFragment(container);
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        criteria.add(Restrictions.ilike(getNameText(), (String) filterCriteria.getValue(),
                                MatchMode.ANYWHERE));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(String.class);
                }

                void loadFromQueryString(String s, User user, Jtrac jtrac) {
                    setValueFromQueryString(s, String.class);
                }
            };
        //==============================================================
        case DETAIL:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(CONTAINS);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) {
                    return getTextFieldFragment(container);
                }

                void addRestrictions(DetachedCriteria criteria) {
                    // do nothing, 'detail' already processed, see: ItemSearch#getSearchText()
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(String.class);
                }

                void loadFromQueryString(String s, User user, Jtrac jtrac) {
                    setValueFromQueryString(s, String.class);
                }
            };

        //==============================================================
        case STATUS:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(IN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) {
                    Fragment fragment = new Fragment("fragParent", "multiSelect", container);
                    // status selectable only when context space is not null
                    final Map<Integer, String> options = space.getMetadata().getStatesMap();
                    options.remove(State.NEW);
                    JtracCheckBoxMultipleChoice choice = new JtracCheckBoxMultipleChoice("values",
                            new ArrayList(options.keySet()), new IChoiceRenderer() {
                                public Object getDisplayValue(Object o) {
                                    return options.get(o);
                                }

                                public String getIdValue(Object o, int i) {
                                    return o.toString();
                                }
                            });
                    fragment.add(choice);
                    choice.setModel(new PropertyModel(filterCriteria, "values"));
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValueList()) {
                        criteria.add(Restrictions.in(getNameText(), filterCriteria.getValues()));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValueList();
                }

                void loadFromQueryString(String s, User user, Jtrac jtrac) {
                    setStatusListFromQueryString(s);
                }
            };
        //==============================================================
        case ASSIGNED_TO:
        case LOGGED_BY:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(IN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) {
                    Fragment fragment = new Fragment("fragParent", "multiSelect", container);
                    List<User> users = null;
                    if (space == null) {
                        users = jtrac.findUsersForUser(user);
                    } else {
                        users = jtrac.findUsersForSpace(space.getId());
                    }
                    JtracCheckBoxMultipleChoice choice = new JtracCheckBoxMultipleChoice("values", users,
                            new IChoiceRenderer() {
                                public Object getDisplayValue(Object o) {
                                    return ((User) o).getName();
                                }

                                public String getIdValue(Object o, int i) {
                                    return ((User) o).getId() + "";
                                }
                            });
                    fragment.add(choice);
                    choice.setModel(new PropertyModel(filterCriteria, "values"));
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValueList()) {
                        criteria.add(Restrictions.in(getNameText(), filterCriteria.getValues()));
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromUserList();
                }

                void loadFromQueryString(String s, User user, Jtrac jtrac) {
                    setUserListFromQueryString(s, jtrac);
                }
            };
        //==============================================================
        case TIME_STAMP:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(BETWEEN, GT, LT);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) {
                    Fragment fragment = new Fragment("fragParent", "dateField", container);
                    YuiCalendar calendar = new YuiCalendar("value", new PropertyModel(filterCriteria, "value"),
                            false);
                    fragment.add(calendar);
                    if (filterCriteria.getExpression() == BETWEEN) {
                        YuiCalendar calendar2 = new YuiCalendar("value2",
                                new PropertyModel(filterCriteria, "value2"), false);
                        fragment.add(calendar2);
                    } else {
                        fragment.add(new WebMarkupContainer("value2").setVisible(false));
                    }
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    if (filterHasValue()) {
                        Object value = filterCriteria.getValue();
                        switch (filterCriteria.getExpression()) {
                        case GT:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            break;
                        case LT:
                            criteria.add(Restrictions.lt(getNameText(), value));
                            break;
                        case BETWEEN:
                            criteria.add(Restrictions.gt(getNameText(), value));
                            criteria.add(Restrictions.lt(getNameText(), filterCriteria.getValue2()));
                            break;
                        default:
                        }
                    }
                }

                String getAsQueryString() {
                    return getQueryStringFromValue(Date.class);
                }

                void loadFromQueryString(String s, User user, Jtrac jtrac) {
                    setValueFromQueryString(s, Date.class);
                }
            };
        //==============================================================
        case SPACE:
            return new Processor() {
                List<Expression> getValidFilterExpressions() {
                    return getAsList(IN);
                }

                Fragment getFilterUiFragment(MarkupContainer container, User user, Space space, Jtrac jtrac) {
                    Fragment fragment = new Fragment("fragParent", "multiSelect", container);
                    List<Space> spaces = new ArrayList(user.getSpaces());
                    JtracCheckBoxMultipleChoice choice = new JtracCheckBoxMultipleChoice("values", spaces,
                            new IChoiceRenderer() {
                                public Object getDisplayValue(Object o) {
                                    return ((Space) o).getName();
                                }

                                public String getIdValue(Object o, int i) {
                                    return ((Space) o).getId() + "";
                                }
                            });
                    fragment.add(choice);
                    choice.setModel(new PropertyModel(filterCriteria, "values"));
                    return fragment;
                }

                void addRestrictions(DetachedCriteria criteria) {
                    // already handled space as special case, see ItemSearch#getSelectedSpaces()
                }

                String getAsQueryString() {
                    return getQueryStringFromSpaceList();
                }

                void loadFromQueryString(String s, User user, Jtrac jtrac) {
                    setSpaceListFromQueryString(s, user, jtrac);
                }
            };
        //==============================================================
        default:
            throw new RuntimeException("Unknown Column Heading " + name);
        }
    }
}

From source file:info.jtrac.repository.HibernateJtracDao.java

License:Apache License

public void addRestrictions(final ColumnHeading columnHeading, DetachedCriteria criteria) {
    if (columnHeading.isField()) {
        switch (columnHeading.getField().getName().getType()) {
        case 1:/*w  ww. ja va  2s  . co m*/
        case 2:
        case 3: {
            if (columnHeading.filterHasValueList()) {
                List<Object> values = columnHeading.getFilterCriteria().getValues();
                List<Integer> keys = new ArrayList<Integer>(values.size());
                for (Object o : values) {
                    keys.add(new Integer(o.toString()));
                }
                criteria.add(Restrictions.in(columnHeading.getNameText(), keys));
            }
            break;
        }
        case 4: {// decimal number
            if (columnHeading.filterHasValue()) {
                Object value = columnHeading.getFilterCriteria().getValue();
                switch (columnHeading.getFilterCriteria().getExpression()) {
                case EQ: {
                    criteria.add(Restrictions.eq(columnHeading.getNameText(), value));
                    break;
                }
                case NOT_EQ: {
                    criteria.add(Restrictions.not(Restrictions.eq(columnHeading.getName().getText(), value)));
                    break;
                }
                case GT: {
                    criteria.add(Restrictions.gt(columnHeading.getNameText(), value));
                    break;
                }
                case LT: {
                    criteria.add(Restrictions.lt(columnHeading.getNameText(), value));
                    break;
                }
                case BETWEEN: {
                    criteria.add(Restrictions.gt(columnHeading.getNameText(), value));
                    criteria.add(Restrictions.lt(columnHeading.getNameText(),
                            columnHeading.getFilterCriteria().getValue2()));
                    break;
                }
                default:
                }
            }
            break;
        }
        case 6: {// date
            if (columnHeading.filterHasValue()) {
                Object value = columnHeading.getFilterCriteria().getValue();
                switch (columnHeading.getFilterCriteria().getExpression()) {
                case EQ:
                    criteria.add(Restrictions.eq(columnHeading.getNameText(), value));
                    break;
                case NOT_EQ:
                    criteria.add(Restrictions.not(Restrictions.eq(columnHeading.getNameText(), value)));
                    break;
                case GT:
                    criteria.add(Restrictions.gt(columnHeading.getNameText(), value));
                    break;
                case LT:
                    criteria.add(Restrictions.lt(columnHeading.getNameText(), value));
                    break;
                case BETWEEN:
                    criteria.add(Restrictions.gt(columnHeading.getNameText(), value));
                    criteria.add(Restrictions.lt(columnHeading.getNameText(),
                            columnHeading.getFilterCriteria().getValue2()));
                    break;
                default:
                }
            }
            break;
        }
        case 5: {// free text
            if (columnHeading.filterHasValue()) {
                criteria.add(Restrictions.ilike(columnHeading.getNameText(),
                        (String) columnHeading.getFilterCriteria().getValue(), MatchMode.ANYWHERE));
            }
            break;
        }
        default:
            throw new RuntimeException("Unknown Column Heading " + columnHeading.getName());
        }
    } else { // this is not a custom field but one of the "built-in" columns
        switch (columnHeading.getName()) {
        case ID: {
            if (columnHeading.filterHasValue()) {
                // should never come here for criteria: see ItemSearch#getRefId()
                throw new RuntimeException("should not come here for 'id'");
            }
            break;
        }
        case SUMMARY: {
            if (columnHeading.filterHasValue()) {
                criteria.add(Restrictions.ilike(columnHeading.getNameText(),
                        (String) columnHeading.getFilterCriteria().getValue(), MatchMode.ANYWHERE));
            }
            break;
        }
        case DETAIL: {
            // do nothing, 'detail' already processed, see: ItemSearch#getSearchText()
            break;
        }
        case STATUS: {
            if (columnHeading.filterHasValueList()) {
                criteria.add(Restrictions.in(columnHeading.getNameText(),
                        columnHeading.getFilterCriteria().getValues()));
            }
            break;
        }
        case ASSIGNED_TO:
        case LOGGED_BY: {
            if (columnHeading.filterHasValueList()) {
                criteria.add(Restrictions.in(columnHeading.getNameText(),
                        columnHeading.getFilterCriteria().getValues()));
            }
            break;
        }
        case TIME_STAMP: {
            if (columnHeading.filterHasValue()) {
                Object value = columnHeading.getFilterCriteria().getValue();
                switch (columnHeading.getFilterCriteria().getExpression()) {
                case GT:
                    criteria.add(Restrictions.gt(columnHeading.getNameText(), value));
                    break;
                case LT:
                    criteria.add(Restrictions.lt(columnHeading.getNameText(), value));
                    break;
                case BETWEEN:
                    criteria.add(Restrictions.gt(columnHeading.getNameText(), value));
                    criteria.add(Restrictions.lt(columnHeading.getNameText(),
                            columnHeading.getFilterCriteria().getValue2()));
                    break;
                default:
                }
            }
            break;
        }
        case SPACE: {
            // already handled space as special case, see ItemSearch#getSelectedSpaces()
            break;
        }
        default:
            throw new RuntimeException("Unknown Column Heading " + columnHeading.getName());
        }
    }

}

From source file:ispok.dao.TournamentHibernateJpaDao.java

@Override
@SuppressWarnings("unchecked")
public List<Tournament> getUpcoming(Date date) {
    Session session = ((Session) getEntityManager().getDelegate());
    Criteria criteria = session.createCriteria(Tournament.class);
    criteria.add(Restrictions.gt("start", date));
    return criteria.list();
}

From source file:itensil.repository.hibernate.BasicSearcher.java

License:Open Source License

protected static Criterion convertCriteria(Criteria crit, BasicSearchClause clause, String alias) {
    if (clause.needsSubClause()) {
        switch (clause.getOp()) {
        case BasicSearchClause.OP_AND:
            Junction conj = Restrictions.conjunction();
            boolean empty = true;
            int acount = 0;
            for (BasicSearchClause subClause : clause.getSubClauses()) {
                Criterion subCrit = convertCriteria(crit, subClause, alias + "a" + acount);
                acount++;//from w  w w .  j  ava  2  s .c  o  m
                if (subCrit != null) {
                    empty = false;
                    conj.add(subCrit);
                }
            }
            return empty ? null : conj;

        case BasicSearchClause.OP_NOT:
            Criterion subCrit = convertCriteria(crit, clause.getSubClauses()[0], alias + "n");
            if (subCrit != null) {
                return Restrictions.not(subCrit);
            }
            return null;

        default: // probably OR
            return null;
        }
    }
    if (clause.getOp() == BasicSearchClause.OP_IS_COLLECTION) {
        return Restrictions.eq("collection", true);
    }
    String argName;
    Criterion nameCrit = null;
    if (QNAME_DISPLAYNAME.equals(clause.getProperty())) {
        if (clause.getOp() == BasicSearchClause.OP_IS_DEFINED)
            return null;
        argName = "localUri";
    } else {

        /* This has bugged in hibernate
                
        crit.createAlias("versionEntities", alias);
        crit.createAlias(alias + ".propertyVals", alias + "pv");
        //crit.createAlias(alias + "p.name", alias + "nm");
        argName = alias + "pv.value";
                
                
        crit.createAlias("defaultVersion.directProps", alias);
        crit.createAlias("defaultVersion.directProps.name", alias + "nm");
                
        //crit.createAlias(alias + "dp.name", alias + "nm");
        argName = alias + ".value";
        nameCrit = Restrictions.eq(alias + "nm.localName", clause.getProperty().getLocalPart());
        */
        return null;
    }
    Criterion valCrit;
    switch (clause.getOp()) {
    case BasicSearchClause.OP_IS_DEFINED:
        return nameCrit;
    case BasicSearchClause.OP_EQ:
        valCrit = Restrictions.eq(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_GT:
        valCrit = Restrictions.gt(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_GTE:
        valCrit = Restrictions.ge(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_LT:
        valCrit = Restrictions.lt(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_LTE:
        valCrit = Restrictions.le(argName, clause.getLiteral());
        break;
    case BasicSearchClause.OP_LIKE:
        valCrit = Restrictions.like(argName, clause.getLiteral());
        break;
    default:
        return null;
    }
    return nameCrit == null ? valCrit : Restrictions.and(nameCrit, valCrit);
}