/** * Builds empty conversation structure on a wavelet. * * @throws IllegalStateException if the wavelet already has conversation * structure */ public static void makeWaveletConversational(Wavelet wavelet) { DocumentBasedManifest.initialiseDocumentManifest(getManifestDocument(wavelet)); }
/** * Checks whether a wavelet has conversation structure. */ public static boolean waveletHasConversation(Wavelet wavelet) { return DocumentBasedManifest.documentHasManifest(getManifestDocument(wavelet)); }
@Override public void delete() { getRootThread().deleteBlips(); DocumentBasedManifest.delete(getManifestDocument(wavelet)); Preconditions.checkState(!isUsable, "Conversation still usable after delete"); }
public void testManifestAtomicReplacementFiresConversationRemovedThenAdded() { ObservableConversation conv = waveBasedConversationView.createRoot(); ObservableConversationView.Listener listener = mock(ObservableConversationView.Listener.class); waveBasedConversationView.addListener(listener); restore(WaveletBasedConversation.getManifestDocument(waveView.getRoot())); InOrder order = inOrder(listener); order.verify(listener).onConversationRemoved(conv); order.verify(listener).onConversationAdded(waveBasedConversationView.getRoot()); }
public void testManifestErasureFiresConversationRemoved() { ObservableConversation conv = waveBasedConversationView.createRoot(); ObservableConversationView.Listener listener = mock(ObservableConversationView.Listener.class); waveBasedConversationView.addListener(listener); erase(WaveletBasedConversation.getManifestDocument(waveView.getRoot())); verify(listener).onConversationRemoved(conv); }
public void testManifestAtomicReplacementFiresConversationRemovedThenAdded() { ObservableConversation conv = waveBasedConversationView.createRoot(); ObservableConversationView.Listener listener = mock(ObservableConversationView.Listener.class); waveBasedConversationView.addListener(listener); restore(WaveletBasedConversation.getManifestDocument(waveView.getRoot())); InOrder order = inOrder(listener); order.verify(listener).onConversationRemoved(conv); order.verify(listener).onConversationAdded(waveBasedConversationView.getRoot()); }
public void testManifestErasureFiresConversationRemoved() { ObservableConversation conv = waveBasedConversationView.createRoot(); ObservableConversationView.Listener listener = mock(ObservableConversationView.Listener.class); waveBasedConversationView.addListener(listener); erase(WaveletBasedConversation.getManifestDocument(waveView.getRoot())); verify(listener).onConversationRemoved(conv); }
@Override protected void setUp() throws Exception { idGenerator = FakeIdGenerator.create(); waveView = ConversationTestUtils.createWaveView(idGenerator); conversationView = WaveBasedConversationView.create(waveView, idGenerator); target = makeConversation(); manifestDoc = WaveletBasedConversation.getManifestDocument(target.getWavelet()); blipListener = mock(WaveletBasedConversationBlip.Listener.class); threadListener = mock(WaveletBasedConversationThread.Listener.class); super.setUp(); }
@Override protected void setUp() throws Exception { idGenerator = FakeIdGenerator.create(); waveView = ConversationTestUtils.createWaveView(idGenerator); conversationView = WaveBasedConversationView.create(waveView, idGenerator); target = makeConversation(); manifestDoc = WaveletBasedConversation.getManifestDocument(target.getWavelet()); blipListener = mock(WaveletBasedConversationBlip.Listener.class); threadListener = mock(WaveletBasedConversationThread.Listener.class); super.setUp(); }
@Override protected WaveletBasedConversation mirrorConversation(ObservableConversation toMirror) { WaveletBasedConversation backer = (WaveletBasedConversation) toMirror; ObservableDocument backerManifestDoc = WaveletBasedConversation.getManifestDocument( backer.getWavelet()); ObservableManifest manifest = backerManifestDoc.with( new ObservableMutableDocument.Method<ObservableManifest>() { @Override public <N, E extends N, T extends N> ObservableManifest exec( ObservableMutableDocument<N, E, T> doc) { E top = DocHelper.expectAndGetFirstTopLevelElement(doc, DocumentBasedManifest.MANIFEST_TOP_TAG); return DocumentBasedManifest.createOnExisting(DefaultDocumentEventRouter.create(doc), top); } }); return WaveletBasedConversation.create(conversationView, backer.getWavelet(), manifest, idGenerator); }
@Override protected WaveletBasedConversation mirrorConversation(ObservableConversation toMirror) { WaveletBasedConversation backer = (WaveletBasedConversation) toMirror; ObservableDocument backerManifestDoc = WaveletBasedConversation.getManifestDocument( backer.getWavelet()); ObservableManifest manifest = backerManifestDoc.with( new ObservableMutableDocument.Method<ObservableManifest>() { @Override public <N, E extends N, T extends N> ObservableManifest exec( ObservableMutableDocument<N, E, T> doc) { E top = DocHelper.expectAndGetFirstTopLevelElement(doc, DocumentBasedManifest.MANIFEST_TOP_TAG); return DocumentBasedManifest.createOnExisting(DefaultDocumentEventRouter.create(doc), top); } }); return WaveletBasedConversation.create(conversationView, backer.getWavelet(), manifest, idGenerator); }