public UnsetExpressionEvaluator(JsonNodeFactory factory, FieldTreeNode context, UnsetExpression expr) { fields = new ArrayList<>(expr.getFields().size()); this.factory = factory; for (Path p : expr.getFields()) { FieldTreeNode node = context.resolve(p); if (node == null) { throw new EvaluationError(CrudConstants.ERR_INVALID_DEREFERENCE + p); } fields.add(new AbsPath(p, node, node.getFullPath())); } LOGGER.debug("context {} fields {}", context, fields); }
public UnsetExpressionEvaluator(JsonNodeFactory factory, FieldTreeNode context, UnsetExpression expr) { fields = new ArrayList<>(expr.getFields().size()); this.factory = factory; for (Path p : expr.getFields()) { FieldTreeNode node = context.resolve(p); if (node == null) { throw new EvaluationError(CrudConstants.ERR_INVALID_DEREFERENCE + p); } fields.add(new AbsPath(p, node, node.getFullPath())); } LOGGER.debug("context {} fields {}", context, fields); }
public UnsetExpressionEvaluator(JsonNodeFactory factory, FieldTreeNode context, UnsetExpression expr) { fields = new ArrayList<>(expr.getFields().size()); this.factory = factory; for (Path p : expr.getFields()) { FieldTreeNode node = context.resolve(p); if (node == null) { throw new EvaluationError(CrudConstants.ERR_INVALID_DEREFERENCE + p); } fields.add(new AbsPath(p, node, node.getFullPath())); } LOGGER.debug("context {} fields {}", context, fields); }
private void translateUnset(FieldTreeNode root, UnsetExpression expr, BasicDBObject dest) throws CannotTranslateException { BasicDBObject obj = (BasicDBObject) dest.get("$unset"); if (obj == null) { obj = new BasicDBObject(); dest.put("$unset", obj); } for (Path field : expr.getFields()) { if (hasArray(root, field)) { throw new CannotTranslateException(expr); } obj.put(translatePath(field), ""); } }
private void translateUnset(FieldTreeNode root, UnsetExpression expr, BasicDBObject dest) throws CannotTranslateException { BasicDBObject obj = (BasicDBObject) dest.get("$unset"); if (obj == null) { obj = new BasicDBObject(); dest.put("$unset", obj); } for (Path field : expr.getFields()) { if (hasArray(root, field)) { throw new CannotTranslateException(expr); } obj.put(translatePath(field), ""); } }