/** * Parses an rvalue from a json node. */ public static RValueExpression fromJson(JsonNode node) { if (node instanceof ObjectNode) { if (node.size() == 1) { JsonNode path = node.get("$valueof"); if (path != null && path.isValueNode()) { return new RValueExpression(new Path(path.asText())); } else { return new RValueExpression(new Value(node)); } } else { return new RValueExpression(new Value(node)); } } if (node instanceof ArrayNode) { return new RValueExpression(new Value(node)); } else if (node.isValueNode()) { if (node.asText().equals("$null")) { return NULL; } else { return new RValueExpression(Value.fromJson(node)); } } throw Error.get(QueryConstants.ERR_INVALID_RVALUE_EXPRESSION, node.toString()); }
/** * Parses an rvalue from a json node. */ public static RValueExpression fromJson(JsonNode node) { if (node instanceof ObjectNode) { if (node.size() == 1) { JsonNode path = node.get("$valueof"); if (path != null && path.isValueNode()) { return new RValueExpression(new Path(path.asText())); } else { return new RValueExpression(new Value(node)); } } else { return new RValueExpression(new Value(node)); } } if (node instanceof ArrayNode) { return new RValueExpression(new Value(node)); } else if (node.isValueNode()) { if (node.asText().equals("$null")) { return NULL; } else { return new RValueExpression(Value.fromJson(node)); } } throw Error.get(QueryConstants.ERR_INVALID_RVALUE_EXPRESSION, node.toString()); }