/** * Deserialize a {@link WaveletSnapshot} into a list of * {@link WaveletOperation}s. * * @param snapshot snapshot protocol buffer to deserialize * @return a list of operations */ public static List<CoreWaveletOperation> deserialize(WaveletSnapshot snapshot) { List<CoreWaveletOperation> ops = Lists.newArrayList(); for (String participant : snapshot.getParticipantIdList()) { CoreAddParticipant addOp = new CoreAddParticipant(new ParticipantId(participant)); ops.add(addOp); } for (DocumentSnapshot document : snapshot.getDocumentList()) { CoreWaveletDocumentOperation docOp = new CoreWaveletDocumentOperation( document.getDocumentId(), deserialize(document.getDocumentOperation())); ops.add(docOp); } return ops; }
CoreWaveletOperationSerializer.deserialize(document.getDocumentOperation()); coreWavelet.modifyDocument(document.getDocumentId(), op);
/** * Serializes a document to a document snapshot. * * @param document The document to serialize * @return A snapshot of the given document */ public static DocumentSnapshot serializeDocument(ReadableBlipData document) { DocumentSnapshot.Builder builder = DocumentSnapshot.newBuilder(); builder.setDocumentId(document.getId()); builder.setDocumentOperation(CoreWaveletOperationSerializer.serialize( document.getContent().asOperation())); builder.setAuthor(document.getAuthor().getAddress()); for (ParticipantId participant : document.getContributors()) { builder.addContributor(participant.getAddress()); } builder.setLastModifiedVersion(document.getLastModifiedVersion()); builder.setLastModifiedTime(document.getLastModifiedTime()); return builder.build(); }
private static void addDocumentSnapshotToWavelet( DocumentSnapshot snapshot, WaveletData container) throws InvalidParticipantAddress { DocOp op = CoreWaveletOperationSerializer.deserialize(snapshot.getDocumentOperation()); DocInitialization docInit = DocOpUtil.asInitialization(op); Collection<ParticipantId> contributors = CollectionUtils.newArrayList(); for (String p : snapshot.getContributorList()) { contributors.add(getParticipantId(p)); } container.createDocument( snapshot.getDocumentId(), getParticipantId(snapshot.getAuthor()), contributors, docInit, snapshot.getLastModifiedTime(), snapshot.getLastModifiedVersion()); } }