public Builder patch(final JsonPatch patch) { diff = new JsonPatchDiff(patch); return this; }
@Override public int hashCode() { int result = checksum.hashCode(); result = 31 * result + (int) (clientVersion ^ clientVersion >>> 32); result = 31 * result + (int) (serverVersion ^ serverVersion >>> 32); result = 31 * result + diff.hashCode(); return result; }
@Override public void serialize(final JsonPatchEdit edit, final JsonGenerator jgen, final SerializerProvider provider) throws IOException { jgen.writeStartObject(); jgen.writeStringField("msgType", "patch"); jgen.writeNumberField("clientVersion", edit.clientVersion()); jgen.writeNumberField("serverVersion", edit.serverVersion()); jgen.writeStringField("checksum", edit.checksum()); if (edit.diff() != null) { jgen.writeObjectField("diffs", edit.diff().jsonPatch()); } } }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } final JsonPatchEdit that = (JsonPatchEdit) o; if (clientVersion != that.clientVersion) { return false; } if (serverVersion != that.serverVersion) { return false; } if (!diff.equals(that.diff)) { return false; } return checksum.equals(that.checksum); }
private static JsonNode patch(final JsonPatchEdit edit, final JsonNode target) { try { return edit.diff().jsonPatch().apply(target); } catch (final JsonPatchException e) { throw new RuntimeException(e.getMessage(), e); } }
@Override public void serialize(final JsonPatchMessage patchMessage, final JsonGenerator jgen, final SerializerProvider provider) throws IOException { jgen.writeStartObject(); jgen.writeStringField("msgType", "patch"); jgen.writeStringField("id", patchMessage.documentId()); jgen.writeStringField("clientId", patchMessage.clientId()); jgen.writeArrayFieldStart("edits"); for (JsonPatchEdit edit : patchMessage.edits()) { if (edit == null) { continue; } jgen.writeStartObject(); jgen.writeNumberField("clientVersion", edit.clientVersion()); jgen.writeNumberField("serverVersion", edit.serverVersion()); jgen.writeStringField("checksum", edit.checksum()); if (edit.diff() != null) { jgen.writeObjectField("diffs", edit.diff().jsonPatch()); } jgen.writeEndObject(); } jgen.writeEndArray(); jgen.writeEndObject(); } }
private Builder(final JsonPatch patch) { diff = new JsonPatchDiff(patch); }