public SearchQuery<T> add(String name, SearchOp op, String val) { if (op == SearchOp.AND_EQ) { qb.andEQ(name, val); } else if (op == SearchOp.AND_GT) { qb.andGT(name, val); } else if (op == SearchOp.AND_GTE) { qb.andGTE(name, val); } else if (op == SearchOp.AND_LT) { qb.andLT(name, val); } else if (op == SearchOp.AND_LTE) { qb.andLTE(name, val); } else if (op == SearchOp.AND_NOT_EQ) { qb.andNotEQ(name, val); } else if (op == SearchOp.OR_EQ) { qb.orEQ(name, val); } else if (op == SearchOp.OR_GT) { qb.orGT(name, val); } else if (op == SearchOp.OR_GTE) { qb.orGTE(name, val); } else if (op == SearchOp.OR_LT) { qb.orLT(name, val); } else if (op == SearchOp.OR_LTE) { qb.orLTE(name, val); } else if (op == SearchOp.OR_NOT_EQ) { qb.orNotEQ(name, val); } else { throw new IllegalArgumentException(String.format("%s is not vaild operator for this function, try another add() ???", op)); } return this; }