// TODO(ljvderijk): Proper schemas need to be enforced here.
DocumentFactory<?> docFactory =
ObservablePluggableMutableDocument.createFactory(SchemaCollection.empty());
ObservableWaveletData perAuthorWavelet =
WaveletDataImpl.Factory.create(docFactory).create(snapshot);
SilentOperationSink<WaveletOperation> executor =
SilentOperationSink.Executor.<WaveletOperation, WaveletData>build(perAuthorWavelet);
// Build sink that gathers these ops
CapturingOperationSink<WaveletOperation> output =
new CapturingOperationSink<WaveletOperation>();
BasicWaveletOperationContextFactory contextFactory =
new BasicWaveletOperationContextFactory(opAuthor);
OpBasedWavelet w =
new OpBasedWavelet(perAuthorWavelet.getWaveId(), perAuthorWavelet, contextFactory,
ParticipationHelper.DEFAULT, executor, output);
// Store the new sink and wavelet
sinkMap.put(opAuthor, output);
waveletMap.put(opAuthor, w);