/** * Parses an ArrayContainsExpression from a JSON object node. */ public static ArrayContainsExpression fromJson(ObjectNode node) { JsonNode x = node.get("array"); if (x != null) { Path field = new Path(x.asText()); x = node.get("contains"); if (x != null) { ContainsOperator op = ContainsOperator.fromString(x.asText()); if (op != null) { x = node.get("values"); if (x instanceof ArrayNode) { ArrayList<Value> values = new ArrayList<>(((ArrayNode) x).size()); for (Iterator<JsonNode> itr = ((ArrayNode) x).elements(); itr.hasNext();) { values.add(Value.fromJson(itr.next())); } return new ArrayContainsExpression(field, op, values); } } } } throw Error.get(QueryConstants.ERR_INVALID_ARRAY_COMPARISON_EXPRESSION, node.toString()); } }
/** * Parses an ArrayContainsExpression from a JSON object node. */ public static ArrayContainsExpression fromJson(ObjectNode node) { JsonNode x = node.get("array"); if (x != null) { Path field = new Path(x.asText()); x = node.get("contains"); if (x != null) { ContainsOperator op = ContainsOperator.fromString(x.asText()); if (op != null) { x = node.get("values"); if (x instanceof ArrayNode) { ArrayList<Value> values = new ArrayList<>(((ArrayNode) x).size()); for (Iterator<JsonNode> itr = ((ArrayNode) x).elements(); itr.hasNext();) { values.add(Value.fromJson(itr.next())); } return new ArrayContainsExpression(field, op, values); } } } } throw Error.get(QueryConstants.ERR_INVALID_ARRAY_COMPARISON_EXPRESSION, node.toString()); } }
@Override protected QueryExpression itrArrayContainsExpression(ArrayContainsExpression q, Path context) { return new ArrayContainsExpression(toRelative(q.getArray(), context), q.getOp(), q.getValues()); }
@Override protected QueryExpression itrArrayContainsExpression(ArrayContainsExpression q, Path context) { return new ArrayContainsExpression(toRelative(q.getArray(), context), q.getOp(), q.getValues()); }
protected QueryExpression itrArrayContainsExpression(ArrayContainsExpression q, Path context) { Binder binding = getBoundValue(q.getValues()); if (binding != null) { return new ArrayContainsExpression(q.getArray(), q.getOp(), (List<Value>) binding.getValue()); } else { return q; } }
protected QueryExpression itrArrayContainsExpression(ArrayContainsExpression q, Path context) { Binder binding = getBoundValue(q.getValues()); if (binding != null) { return new ArrayContainsExpression(q.getArray(), q.getOp(), (List<Value>) binding.getValue()); } else { return q; } }
@Override protected QueryExpression itrArrayContainsExpression(ArrayContainsExpression q, Path context) { Path p = rewrite(context, q.getArray()); if (!p.equals(q.getArray())) { return new ArrayContainsExpression(p, q.getOp(), q.getValues()); } else { return q; } }
@Override protected QueryExpression itrArrayContainsExpression(ArrayContainsExpression q, Path context) { Path p = applyContext(context, q.getArray()); if (p != null) { return new ArrayContainsExpression(removeContext(context, p, q.getArray()), q.getOp(), q.getValues()); } else { return q; } }
@Override protected QueryExpression itrArrayContainsExpression(ArrayContainsExpression q, Path context) { Path p = rewrite(context, q.getArray()); if (!p.equals(q.getArray())) { return new ArrayContainsExpression(p, q.getOp(), q.getValues()); } else { return q; } }
@Override protected QueryExpression itrArrayContainsExpression(ArrayContainsExpression q, Path context) { Path p = applyContext(context, q.getArray()); if (p != null) { return new ArrayContainsExpression(removeContext(context, p, q.getArray()), q.getOp(), q.getValues()); } else { return q; } }
@Override protected QueryExpression itrArrayContainsExpression(ArrayContainsExpression q, Path context) { Path p = rewrite(context, q.getArray()); if (!p.equals(q.getArray())) { return new ArrayContainsExpression(p, q.getOp(), q.getValues()); } else { return q; } }
BinaryComparisonOperator._eq, new Value(entity)), new ArrayContainsExpression(P_VERSIONS, ContainsOperator._any, versionList));
BinaryComparisonOperator._eq, new Value(entity)), new ArrayContainsExpression(P_VERSIONS, ContainsOperator._any, versionList));
@Override protected QueryExpression itrArrayContainsExpression(ArrayContainsExpression q, Path context) { QueryFieldInfo qfi = findFieldInfo(q.getArray(), q); if (qfi.getFieldEntity() != currentEntity) { return new TruePH(); } else if (qfi.getFieldNameInClause().equals(qfi.getEntityRelativeFieldName()) && nestedFieldPrefix.isEmpty()) { return q; } else { return new ArrayContainsExpression(addPrefix(qfi.getEntityRelativeFieldName()), q.getOp(), q.getValues()); } }
@Override protected QueryExpression itrArrayContainsExpression(ArrayContainsExpression q, Path context) { QueryFieldInfo qfi = findFieldInfo(q.getArray(), q); if (qfi.getFieldEntity() != currentEntity) { return new TruePH(); } else if (qfi.getFieldNameInClause().equals(qfi.getEntityRelativeFieldName()) && nestedFieldPrefix.isEmpty()) { return q; } else { return new ArrayContainsExpression(addPrefix(qfi.getEntityRelativeFieldName()), q.getOp(), q.getValues()); } }
List<Value> list = new ArrayList<>(1); list.add(value); return new ArrayContainsExpression(removeContext(rfi.getFieldEntity(),addPrefix(rfi.getEntityRelativeFieldName())), q.getOp() == NaryRelationalOperator._in ? ContainsOperator._all : ContainsOperator._none, list);
List<Value> list = new ArrayList<>(1); list.add(value); return new ArrayContainsExpression(removeContext(rfi.getFieldEntity(),addPrefix(rfi.getEntityRelativeFieldName())), q.getOp() == NaryRelationalOperator._in ? ContainsOperator._all : ContainsOperator._none, list);