@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();
}
}