/** * @param lower The lower bound. * @param upper The upper bound. * @return An expression checking for objects between a lower and upper * bound inclusive */ public Expression between(E lower, E upper) { return ExpressionFactory.betweenExp(getExpression(), lower, upper); }
/** * A convenience shortcut for building BETWEEN expressions. */ public static Expression betweenExp(String pathSpec, Object value1, Object value2) { return betweenExp(new ASTObjPath(pathSpec), value1, value2); }
public void addRange(String fieldName, Object start, Object end) { ObjEntityViewField field = queryTarget.getField(fieldName); String path = null; if (field.getCalcType().getValue() == CalcTypeEnum.NO_CALC_TYPE_VALUE) { path = field.getObjAttribute().getName(); } else if (field.isLookup()) { path = field.getObjRelationship().getName(); } Object rawStart = field.toRawValue(start); Object rawEnd = field.toRawValue(end); Expression expr = null; if (rawStart != null && rawEnd != null) expr = ExpressionFactory.betweenExp(path, rawStart, rawEnd); else if (rawStart != null) expr = ExpressionFactory.greaterOrEqualExp(path, rawStart); else if (rawEnd != null) expr = ExpressionFactory.lessOrEqualExp(path, rawEnd); if (expr != null) conditions.add(expr); }