((AddParticipant) waveletOp).getParticipantId().getAddress());
} else if (waveletOp instanceof RemoveParticipant) {
protobufOp.setRemoveParticipant(
((RemoveParticipant) waveletOp).getParticipantId().getAddress());
} else if (waveletOp instanceof WaveletBlipOperation) {
final WaveletBlipOperation wbOp = (WaveletBlipOperation) waveletOp;
final ProtocolWaveletOperation.MutateDocument.Builder mutation =
ProtocolWaveletOperation.MutateDocument.newBuilder();
mutation.setDocumentId(wbOp.getBlipId());
wbOp.getBlipOp().acceptVisitor(new BlipOperationVisitor() {
@Override
public void visitBlipContentOperation(BlipContentOperation blipOp) {
mutation.setDocumentOperation(serialize(blipOp.getContentOp()));
}
@Override
public void visitSubmitBlip(SubmitBlip op) {
throw new IllegalArgumentException("Unsupported blip operation: " + wbOp.getBlipOp());
}
});
protobufOp.setMutateDocument(mutation.build());
} else {
throw new IllegalArgumentException("Unsupported wavelet operation: " + waveletOp);