return new AddParticipant(ctx, new ParticipantId(protobufOp.getAddParticipant()));
} else if (protobufOp.hasRemoveParticipant()) {
return new RemoveParticipant(ctx, new ParticipantId(protobufOp.getRemoveParticipant()));
} else if (protobufOp.hasMutateDocument()) {
return new WaveletBlipOperation(protobufOp.getMutateDocument().getDocumentId(),
new BlipContentOperation(ctx, deserialize(protobufOp.getMutateDocument()
.getDocumentOperation())));
} else {
throw new IllegalArgumentException("Unsupported operation: " + protobufOp);
}
}