public Boolean walkIsNull(Operand value) { return Boolean.valueOf(walkOperand(value) == null); }
public Boolean walkIsNotNull(Operand value) { return Boolean.valueOf(walkOperand(value) != null); }
protected Integer cmp(Operand lvalue, Operand rvalue) { Object left = walkOperand(lvalue); Object right = walkOperand(rvalue); return cmp(left, right); }
public Boolean walkLike(Operand lvalue, Operand rvalue, boolean positive, boolean caseInsensitive) { Object left = walkOperand(lvalue); Object right = walkOperand(rvalue); if (!(right instanceof String)) { throw new QueryParseException("Invalid LIKE rhs: " + rvalue); } return likeMaybeList(left, (String) right, positive, caseInsensitive); }
public Boolean walkOr(Operand lvalue, Operand rvalue) { Boolean left = bool(walkOperand(lvalue)); Boolean right = bool(walkOperand(rvalue)); return or(left, right); }
public Boolean walkAnd(Operand lvalue, Operand rvalue) { Boolean left = bool(walkOperand(lvalue)); Boolean right = bool(walkOperand(rvalue)); return and(left, right); }
public Boolean walkEq(Operand lvalue, Operand rvalue) { Object right = walkOperand(rvalue); if (isMixinTypes(lvalue)) { if (!(right instanceof String)) { throw new QueryParseException("Invalid EQ rhs: " + rvalue); } return walkMixinTypes(Collections.singletonList((String) right), true); } Object left = walkOperand(lvalue); return eqMaybeList(left, right); }
public Boolean walkNot(Operand value) { return not(bool(walkOperand(value))); }
public Boolean walkIn(Operand lvalue, Operand rvalue, boolean positive) { Object right = walkOperand(rvalue); if (!(right instanceof List)) { throw new QueryParseException("Invalid IN rhs: " + rvalue); } if (isMixinTypes(lvalue)) { return walkMixinTypes((List<String>) right, positive); } Object left = walkOperand(lvalue); Boolean in = inMaybeList(left, (List<Object>) right); return positive ? in : not(in); }
public Boolean walkNotEq(Operand lvalue, Operand rvalue) { if (isMixinTypes(lvalue)) { Object right = walkOperand(rvalue); if (!(right instanceof String)) { throw new QueryParseException("Invalid NE rhs: " + rvalue); } return walkMixinTypes(Collections.singletonList((String) right), false); } return not(walkEq(lvalue, rvalue)); }