private static Literal[] values(boolean... v) { Literal[] ret = new Literal[v.length]; for (int i = 0; i < ret.length; i++) { ret[i] = Literal.value(v[i]); } return ret; }
public static Literal value(Object x) { return new Literal(x); }
public Literal(Object x) { super(valueToJson(x)); }
Update.set("jobExecutions", Literal.emptyArray()), Update.append("jobExecutions", Literal.emptyObject()), more("jobExecutions.-1.actualStartDate", Literal.value(execution.getActualStartDate())). more("inconsistentDocumentCount", execution.getInconsistentDocumentCount()). more("overwrittenDocumentCount", execution.getOverwrittenDocumentCount()). more("actualEndDate", Literal.value(new Date())))));
} else if (x.getClass().isArray()) { if (x instanceof Literal[]) { node = toJson((Literal[]) x); } else if (x instanceof Object[]) { node = toJson(values((Object[]) x)); } else if (x instanceof int[]) { node = toJson(values((int[]) x)); } else if (x instanceof long[]) { node = toJson(values((long[]) x)); } else if (x instanceof boolean[]) { node = toJson(values((boolean[]) x)); } else { throw new UnsupportedOperationException("Array of type " + x.getClass() + " is not supported.");
public static JsonNode toJson(Literal[] arr) { ArrayNode node = JsonNodeFactory.instance.arrayNode(); for (Literal x : arr) { node.add(x.toJson()); } return node; } }
/** * <pre> * { "$or": [{ field: <field>, regex: <^string$>, caseInsensitive: <caseInsensitive>, ... }, ... ]} * </pre> */ public static Query withStrings(String field, String[] values, boolean caseInsensitive) { if (caseInsensitive) { List<Query> regexList = new ArrayList<Query>(); for (String value : values) { regexList.add(withString(field, value, true)); } return Query.or(regexList); } else { return Query.withValues(field, Query.in, Literal.values(values)); } }
/** * <pre> * { field: <field>, op: <in/nin>, values: [ values ] } * </pre> */ public static Query withValues(String field, NaryOp op, Literal... values) { Query q = new Query(false); q.add("field", field).add("op", op.toString()).add("values", Literal.toJson(values)); return q; }
/** * <pre> * { field:<field>, op:<op>, rvalue:<value> } * { field:<field>, op:<op>, values:[values] } * </pre> */ public static Query withValue(String expression) { String[] parts = split(expression); if (parts != null) { String field = parts[0]; String operator = parts[1]; String value = parts[2]; BinOp binOp = BinOp.getOp(operator); if (binOp != null) { return withValue(field, binOp, value); } NaryOp naryOp = NaryOp.getOp(operator); if (naryOp != null) { Literal[] values = Literal.values(value.substring(1, value.length() - 1).split("\\s*,\\s*")); return withValues(field, naryOp, values); } } throw new IllegalArgumentException("'" + expression + "' is incorrect"); }
private static Literal[] values(Object... v) { Literal[] ret = new Literal[v.length]; for (int i = 0; i < ret.length; i++) { ret[i] = Literal.value(v[i]); } return ret; }
public static Literal value(int i) { return new Literal(i); }
/** * <pre> * { field: <field>, op: <op>, rvalue: <value> } * </pre> */ public static Query withValue(String field, BinOp op, Literal value) { Query q = new Query(false); q.add("field", field).add("op", op.toString()).add("rvalue", value.toJson()); return q; }
/** * @see Literal#value(Object) TODO method should be made private and not * actually deleted */ @Deprecated public static Literal[] values(int... v) { Literal[] ret = new Literal[v.length]; for (int i = 0; i < ret.length; i++) { ret[i] = Literal.value(v[i]); } return ret; }
public static Literal value(long l) { return new Literal(l); }
/** * <pre> * { array: <array>, contains: <op>, values: [values] } * </pre> */ public static Query arrayContains(String array, ArrOp op, Literal... values) { Query q = new Query(false); q.add("array", array).add("contains", op.toString()).add("values", Literal.toJson(values)); return q; }
/** * @see Literal#value(Object) */ @Deprecated public static Literal[] values(String... v) { Literal[] ret = new Literal[v.length]; for (int i = 0; i < ret.length; i++) { ret[i] = Literal.value(v[i]); } return ret; }
public static Literal value(double d) { return new Literal(d); }
/** * @see Literal#value(Object) TODO method should be made private and not * actually deleted */ @Deprecated public static Literal[] values(long... v) { Literal[] ret = new Literal[v.length]; for (int i = 0; i < ret.length; i++) { ret[i] = Literal.value(v[i]); } return ret; }
public static Literal value(boolean b) { return new Literal(b); }
/** * @see Literal#value(Object) */ @Deprecated public static Literal[] numbers(Number... v) { Literal[] ret = new Literal[v.length]; for (int i = 0; i < ret.length; i++) { ret[i] = Literal.value(v[i]); } return ret; }