public static WaveletOperation deserialize(ProtocolWaveletOperation protobufOp,
WaveletOperationContext context) {
if (protobufOp.hasNoOp()) {
return new NoOp(context);
} else if (protobufOp.hasAddParticipant()) {
return new AddParticipant(context, new ParticipantId(protobufOp.getAddParticipant()));
} else if (protobufOp.hasRemoveParticipant()) {
return new RemoveParticipant(context, new ParticipantId(protobufOp.getRemoveParticipant()));
} else if (protobufOp.hasMutateDocument()) {
return new WaveletBlipOperation(protobufOp.getMutateDocument().getDocumentId(),
new BlipContentOperation(context,