class DocumentMutator implements Handler<Message<JsonObject>> {
private final SelectionTracker selectionTracker = new SelectionTracker();
@Override
public void handle(Message<JsonObject> message) {
ClientToServerDocOpImpl wrappedDocOp =
ClientToServerDocOpImpl.fromJsonString(Dto.get(message));
String resourceId = wrappedDocOp.getFileEditSessionKey();
FileEditSession editSession = editSessions.get(resourceId);
// Apply the DocOp.
if (editSession != null) {
List<String> docOps = ((JsonArrayListAdapter<String>) wrappedDocOp.getDocOps2()).asList();
ServerToClientDocOpsImpl appliedDocOps = applyMutation(
docOps, wrappedDocOp.getClientId(), wrappedDocOp.getCcRevision(),
wrappedDocOp.getSelection(), resourceId, editSession);
message.reply(Dto.wrap(appliedDocOps));
}
}