@Override public Document<JsonNode> patchDocument(final JsonPatchEdit edit, final Document<JsonNode> document) { final JsonNode content = patch(edit, document.content()); return new DefaultDocument<JsonNode>(document.id(), content); }
@Override public JsonPatchEdit clientDiff(final Document<JsonNode> document, final ShadowDocument<JsonNode> shadowDocument) { final JsonNode shadowObject = shadowDocument.document().content(); return JsonPatchEdit.withPatch(JsonDiff.asJsonPatch(document.content(), shadowObject)) .checksum(checksum(shadowObject)) .build(); }
@Override public ShadowDocument<JsonNode> patchShadow(final JsonPatchEdit edit, final ShadowDocument<JsonNode> shadowDocument) { final JsonNode content = patch(edit, shadowDocument.document().content()); return new DefaultShadowDocument<JsonNode>(shadowDocument.serverVersion(), shadowDocument.clientVersion(), new DefaultClientDocument<JsonNode>(shadowDocument.document().id(), shadowDocument.document().clientId(), content)); }
@Override public JsonPatchEdit serverDiff(final Document<JsonNode> document, final ShadowDocument<JsonNode> shadowDocument) { final JsonNode shadowObject = shadowDocument.document().content(); return JsonPatchEdit.withPatch(JsonDiff.asJsonPatch(shadowObject, document.content())) .serverVersion(shadowDocument.serverVersion()) .clientVersion(shadowDocument.clientVersion()) .checksum(checksum(shadowObject)) .build(); }