ParticipantId author = ParticipantId.ofUnsafe(delta.getAuthor());
int count = delta.getOperationCount();
Preconditions.checkArgument(count > 0, "Cannot deserialize an empty delta");
List<WaveletOperation> ops = Lists.newArrayListWithCapacity(count);
if (count > 1) {
WaveletOperationContext context =
new WaveletOperationContext(author, applicationTimestamp, 1);
for (int i = 0; i < count - 1; i++) {
ProtocolWaveletOperation op = delta.getOperation(i);
ops.add(deserialize(op, context));
}
}
WaveletOperationContext context =
new WaveletOperationContext(author, applicationTimestamp, 1, resultingVersion);
ops.add(deserialize(delta.getOperation(count - 1), context));
return new TransformedWaveletDelta(author, resultingVersion, applicationTimestamp, ops);
}