/** * 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(); }
/** * Serializes a snapshot for a wavelet. * * @param wavelet wavelet to snapshot * @param hashedVersion hashed version of the wavelet * @return a wavelet snapshot that contains all the information in the original wavelet. */ public static WaveletSnapshot serializeWavelet( ReadableWaveletData wavelet, HashedVersion hashedVersion) { WaveletSnapshot.Builder builder = WaveletSnapshot.newBuilder(); builder.setWaveletId(ModernIdSerialiser.INSTANCE.serialiseWaveletId(wavelet.getWaveletId())); for (ParticipantId participant : wavelet.getParticipants()) { builder.addParticipantId(participant.toString()); } for (String id : wavelet.getDocumentIds()) { ReadableBlipData data = wavelet.getDocument(id); builder.addDocument(serializeDocument(data)); } builder.setVersion(CoreWaveletOperationSerializer.serialize(hashedVersion)); builder.setLastModifiedTime(wavelet.getLastModifiedTime()); builder.setCreator(wavelet.getCreator().getAddress()); builder.setCreationTime(wavelet.getCreationTime()); return builder.build(); }