/** * <pre> * { field:<field>, op:<op>, rfield:<rfield> } * </pre> */ public static Query withField(String expression) { String[] parts = split(expression); if (parts != null) { String field = parts[0]; String operator = parts[1]; String rfield = parts[2]; BinOp binOp = BinOp.getOp(operator); if (binOp != null) { return withField(field, binOp, rfield); } NaryOp naryOp = NaryOp.getOp(operator); if (naryOp != null) { return withFieldValues(field, naryOp, rfield); } } throw new IllegalArgumentException("'" + expression + "' is incorrect"); }