/** * Parses a set expression using the given json object */ public static SetExpression fromJson(ObjectNode node) { if (node.size() == 1) { UpdateOperator op = null; if (node.has(UpdateOperator._add.toString())) { op = UpdateOperator._add; } else if (node.has(UpdateOperator._set.toString())) { op = UpdateOperator._set; } if (op != null) { ObjectNode arg = (ObjectNode) node.get(op.toString()); List<FieldAndRValue> list = new ArrayList<>(); for (Iterator<Map.Entry<String, JsonNode>> itr = arg.fields(); itr.hasNext();) { Map.Entry<String, JsonNode> entry = itr.next(); Path field = new Path(entry.getKey()); RValueExpression rvalue = RValueExpression.fromJson(entry.getValue()); list.add(new FieldAndRValue(field, rvalue)); } return new SetExpression(op, list); } } throw Error.get(QueryConstants.ERR_INVALID_SET_EXPRESSION, node.toString()); }
/** * Parses a set expression using the given json object */ public static SetExpression fromJson(ObjectNode node) { if (node.size() == 1) { UpdateOperator op = null; if (node.has(UpdateOperator._add.toString())) { op = UpdateOperator._add; } else if (node.has(UpdateOperator._set.toString())) { op = UpdateOperator._set; } if (op != null) { ObjectNode arg = (ObjectNode) node.get(op.toString()); List<FieldAndRValue> list = new ArrayList<>(); for (Iterator<Map.Entry<String, JsonNode>> itr = arg.fields(); itr.hasNext();) { Map.Entry<String, JsonNode> entry = itr.next(); Path field = new Path(entry.getKey()); RValueExpression rvalue = RValueExpression.fromJson(entry.getValue()); list.add(new FieldAndRValue(field, rvalue)); } return new SetExpression(op, list); } } throw Error.get(QueryConstants.ERR_INVALID_SET_EXPRESSION, node.toString()); }