/** * Returns a node matching a path * * @param p The path * * The path cannot contain *. * * @returns The node, or null if the node cannot be found */ public JsonNode get(Path p) { return get(docRoot, p); }
/** * Returns a node matching a path * * @param p The path * * The path cannot contain *. * * @returns The node, or null if the node cannot be found */ public JsonNode get(Path p) { return get(docRoot, p); }
/** * Returns a node matching a path * * @param p The path * * The path cannot contain *. * * @returns The node, or null if the node cannot be found */ public JsonNode get(Path p) { return get(docRoot, p); }
public JsonNode getNode(Path relativePath) { return JsonDoc.get(contextRoot, relativePath); }
public JsonNode getNode(Path relativePath) { return JsonDoc.get(contextRoot, relativePath); }
public JsonNode getNode(Path relativePath) { return JsonDoc.get(contextRoot, relativePath); }
/** * Gets the unique ID of the document */ public DocId getDocId(JsonDoc doc) { Object[] values = new Object[identityFields.length]; int i = 0; for (Path x : identityFields) { values[i++] = doc.get(x); } return new DocId(values, objectTypeIx); }
/** * Gets the unique ID of the document */ public DocId getDocId(JsonDoc doc) { Object[] values = new Object[identityFields.length]; int i = 0; for (Path x : identityFields) { values[i++] = doc.get(x); } return new DocId(values, objectTypeIx); }
@Override public Object getIdentity(JsonNode element) { JsonNode[] nodes = new JsonNode[fields.length]; for (int i = 0; i < fields.length; i++) { nodes[i] = JsonDoc.get(element, fields[i]); } return new DefaultIdentity(nodes); } }
/** * Gets the unique ID of the document */ public DocId getDocId(JsonDoc doc) { Object[] values = new Object[identityFields.length]; int i = 0; for (Path x : identityFields) { values[i++] = doc.get(x); } return new DocId(values, objectTypeIx); }
@Override public Object getIdentity(JsonNode element) { JsonNode[] nodes = new JsonNode[fields.length]; for (int i = 0; i < fields.length; i++) { nodes[i] = JsonDoc.get(element, fields[i]); } return new DefaultIdentity(nodes); } }
public QueryEvaluationContext getNestedContext(Path relativePath) { return getNestedContext(JsonDoc.get(contextRoot, relativePath), relativePath); }
public QueryEvaluationContext getNestedContext(Path relativePath) { return getNestedContext(JsonDoc.get(contextRoot, relativePath), relativePath); }
public SortableElement(JsonNode node,SortFieldInfo[] sortFields) { this.node=node; this.sortFields=sortFields; keyValues=new Object[sortFields.length]; for(int i=0;i<sortFields.length;i++) { JsonNode valueNode=JsonDoc.get(node,sortFields[i].name); keyValues[i]=sortFields[i].field.getType().fromJson(valueNode); } }
private void updatePredefinedFields(OperationContext ctx,CRUDController controller, String entity) { for (JsonDoc doc : ctx.getDocuments()) { PredefinedFields.updateArraySizes(factory.getNodeFactory(), doc); JsonNode node = doc.get(OBJECT_TYPE_PATH); if (node == null) { doc.modify(OBJECT_TYPE_PATH, factory.getNodeFactory().textNode(entity), false); } else if (!node.asText().equals(entity)) { throw Error.get(CrudConstants.ERR_INVALID_ENTITY, node.asText()); } controller.updatePredefinedFields(ctx,doc); } } }
private void updatePredefinedFields(OperationContext ctx, CRUDController controller, String entity) { ctx.measure.begin("updatePredefinedFields"); for (JsonDoc doc : ctx.getInputDocuments()) { PredefinedFields.updateArraySizes(ctx.getTopLevelEntityMetadata(), factory.getNodeFactory(), doc); JsonNode node = doc.get(OBJECT_TYPE_PATH); if (node == null) { doc.modify(OBJECT_TYPE_PATH, factory.getNodeFactory().textNode(entity), false); } else if (!node.asText().equals(entity)) { throw Error.get(CrudConstants.ERR_INVALID_ENTITY, node.asText()); } controller.updatePredefinedFields(ctx, doc); } ctx.measure.end("updatePredefinedFields"); }
private JsonNode setOrAdd(JsonDoc doc, Path contextPath, FieldData df, JsonNode newValueNode, Object newValue, Type newValueType) { JsonNode oldValueNode = null; Path fieldPath = new Path(contextPath, df.field); if (op == UpdateOperator._set) { LOGGER.debug("set fieldPath={}, newValue={}", fieldPath, newValueNode); oldValueNode = doc.modify(fieldPath, newValueNode, true); } else if (op == UpdateOperator._add) { oldValueNode = doc.get(fieldPath); if (newValueNode != null && oldValueNode != null) { newValueNode = df.fieldType.toJson(factory, Arith.add(df.fieldType.fromJson(oldValueNode), newValue, Arith.promote(df.fieldType, newValueType))); doc.modify(fieldPath, newValueNode, false); } } return oldValueNode; }
private JsonNode setOrAdd(JsonDoc doc, Path contextPath, FieldData df, JsonNode newValueNode, Object newValue, Type newValueType) { JsonNode oldValueNode = null; Path fieldPath = new Path(contextPath, df.field); if (op == UpdateOperator._set) { LOGGER.debug("set fieldPath={}, newValue={}",fieldPath,newValueNode); oldValueNode = doc.modify(fieldPath, newValueNode, true); } else if (op == UpdateOperator._add) { oldValueNode = doc.get(fieldPath); if (newValueNode != null && oldValueNode != null) { newValueNode = df.fieldType.toJson(factory, Arith.add(df.fieldType.fromJson(oldValueNode), newValue, Arith.promote(df.fieldType, newValueType))); doc.modify(fieldPath, newValueNode, false); } } return oldValueNode; }
@Override public void updatePredefinedFields(CRUDOperationContext ctx, JsonDoc doc) { // If it is a save operation, we rely on _id being passed by client, so we don't auto-generate that // If not, it needs to be auto-generated if(ctx.getCRUDOperation()!=CRUDOperation.SAVE) { JsonNode idNode = doc.get(Translator.ID_PATH); if (idNode == null || idNode instanceof NullNode) { doc.modify(Translator.ID_PATH, ctx.getFactory().getNodeFactory().textNode(ObjectId.get().toString()), false); } } }
@Override public void updatePredefinedFields(CRUDOperationContext ctx, JsonDoc doc) { // If it is a save operation, we rely on _id being passed by client, so we don't auto-generate that // If not, it needs to be auto-generated if (ctx.getCRUDOperation() != CRUDOperation.SAVE) { JsonNode idNode = doc.get(DocTranslator.ID_PATH); if (idNode == null || idNode instanceof NullNode) { doc.modify(DocTranslator.ID_PATH, ctx.getFactory().getNodeFactory().textNode(ObjectId.get().toString()), false); } } }