@Override public void onDeleted() { blip.removeListener(this); triggerOnBlipDeleted(blip); blips.remove(blip.getId()); }
/** * Removes a blip from the internal list and triggers its deletion event. */ private void forgetBlip(WaveletBasedConversationBlip blipToRemove) { String idToRemove = blipToRemove.getId(); assert blips.containsKey(idToRemove); blips.remove(idToRemove); blipToRemove.triggerOnDeleted(); }
private void observe(WaveletBasedConversationBlip blip) { blips.put(blip.getId(), blip); blip.addListener(new BlipListenerAggregator(blip)); for (WaveletBasedConversationThread thread : blip.getReplyThreads()) { observe(thread); } }
public void testAppendBlipsInRootThreadUpdatesManifest() { WaveletBasedConversationBlip first = target.getRootThread().appendBlip(); assertManifestXml("<blip id=\"" + first.getId() + "\"></blip>"); WaveletBasedConversationBlip second = target.getRootThread().appendBlip(); assertManifestXml("<blip id=\"" + first.getId() + "\"></blip>" + "<blip id=\"" + second.getId() + "\"></blip>"); assertMirrorConversationEquivalent(); }
public void testAppendBlipsInRootThreadUpdatesManifest() { WaveletBasedConversationBlip first = target.getRootThread().appendBlip(); assertManifestXml("<blip id=\"" + first.getId() + "\"></blip>"); WaveletBasedConversationBlip second = target.getRootThread().appendBlip(); assertManifestXml("<blip id=\"" + first.getId() + "\"></blip>" + "<blip id=\"" + second.getId() + "\"></blip>"); assertMirrorConversationEquivalent(); }
public void testAppendBlipsInReplyThreadsUpdatesManifest() { WaveletBasedConversationBlip blip = target.getRootThread().appendBlip(); WaveletBasedConversationThread reply = blip.addReplyThread(); WaveletBasedConversationBlip firstReplyBlip = reply.appendBlip(); WaveletBasedConversationBlip secondReplyBlip = reply.appendBlip(); assertManifestXml("<blip id=\"" + blip.getId() + "\">" + "<thread id=\"" + reply.getId() + "\">" + "<blip id=\"" + firstReplyBlip.getId() + "\"></blip>" + "<blip id=\"" + secondReplyBlip.getId() + "\"></blip>" + "</thread>" + "</blip>"); assertMirrorConversationEquivalent(); }
public void testAppendBlipsInReplyThreadsUpdatesManifest() { WaveletBasedConversationBlip blip = target.getRootThread().appendBlip(); WaveletBasedConversationThread reply = blip.addReplyThread(); WaveletBasedConversationBlip firstReplyBlip = reply.appendBlip(); WaveletBasedConversationBlip secondReplyBlip = reply.appendBlip(); assertManifestXml("<blip id=\"" + blip.getId() + "\">" + "<thread id=\"" + reply.getId() + "\">" + "<blip id=\"" + firstReplyBlip.getId() + "\"></blip>" + "<blip id=\"" + secondReplyBlip.getId() + "\"></blip>" + "</thread>" + "</blip>"); assertMirrorConversationEquivalent(); }
/** * Deletes a blip from this thread, deleting that blip's replies. */ void deleteBlip(WaveletBasedConversationBlip blipToDelete, boolean shouldDeleteSelfIfEmpty) { Preconditions.checkArgument(blips.containsKey(blipToDelete.getId()), "Can't delete blip not from this thread"); blipToDelete.deleteThreads(); manifestThread.removeBlip(blipToDelete.getManifestBlip()); blipToDelete.clearContent(); if (shouldDeleteSelfIfEmpty) { deleteSelfIfEmpty(); } }
public void testAppendNonInlineRepliesUpdatesManifest() { WaveletBasedConversationBlip blip = target.getRootThread().appendBlip(); WaveletBasedConversationThread firstReply = blip.addReplyThread(); WaveletBasedConversationBlip firstReplyBlip = firstReply.appendBlip(); assertManifestXml("<blip id=\"" + blip.getId() + "\">" + "<thread id=\"" + firstReply.getId() + "\">" + "<blip id=\"" + firstReplyBlip.getId() + "\"></blip>" + "</thread>" + "</blip>"); WaveletBasedConversationThread secondReply = blip.addReplyThread(); WaveletBasedConversationBlip secondReplyBlip = secondReply.appendBlip(); assertManifestXml("<blip id=\"" + blip.getId() + "\">" + "<thread id=\"" + firstReply.getId() + "\">" + "<blip id=\"" + firstReplyBlip.getId() + "\"></blip>" + "</thread>" + "<thread id=\"" + secondReply.getId() + "\">" + "<blip id=\"" + secondReplyBlip.getId() + "\"></blip>" + "</thread>" + "</blip>"); assertMirrorConversationEquivalent(); }
public void testAppendNonInlineRepliesUpdatesManifest() { WaveletBasedConversationBlip blip = target.getRootThread().appendBlip(); WaveletBasedConversationThread firstReply = blip.addReplyThread(); WaveletBasedConversationBlip firstReplyBlip = firstReply.appendBlip(); assertManifestXml("<blip id=\"" + blip.getId() + "\">" + "<thread id=\"" + firstReply.getId() + "\">" + "<blip id=\"" + firstReplyBlip.getId() + "\"></blip>" + "</thread>" + "</blip>"); WaveletBasedConversationThread secondReply = blip.addReplyThread(); WaveletBasedConversationBlip secondReplyBlip = secondReply.appendBlip(); assertManifestXml("<blip id=\"" + blip.getId() + "\">" + "<thread id=\"" + firstReply.getId() + "\">" + "<blip id=\"" + firstReplyBlip.getId() + "\"></blip>" + "</thread>" + "<thread id=\"" + secondReply.getId() + "\">" + "<blip id=\"" + secondReplyBlip.getId() + "\"></blip>" + "</thread>" + "</blip>"); assertMirrorConversationEquivalent(); }
public void testGetBlipRetrievesBlip() { WaveletBasedConversationBlip blip = target.getRootThread().appendBlip(); WaveletBasedConversationThread reply = blip.addReplyThread(); WaveletBasedConversationBlip replyBlip = reply.appendBlip(); assertSame(blip, target.getBlip(blip.getId())); assertSame(replyBlip, target.getBlip(replyBlip.getId())); assertNull(target.getBlip("foobar")); }
public void testGetBlipRetrievesBlip() { WaveletBasedConversationBlip blip = target.getRootThread().appendBlip(); WaveletBasedConversationThread reply = blip.addReplyThread(); WaveletBasedConversationBlip replyBlip = reply.appendBlip(); assertSame(blip, target.getBlip(blip.getId())); assertSame(replyBlip, target.getBlip(replyBlip.getId())); assertNull(target.getBlip("foobar")); }
public void testAbstractBlipIdMatchesConcreteBlipId() { populate(target); WaveletBasedConversationBlip convBlip = target.getRootThread().getFirstBlip(); assertEquals(convBlip.getId(), convBlip.getBlip().getId()); }
public void testAbstractBlipIdMatchesConcreteBlipId() { populate(target); WaveletBasedConversationBlip convBlip = target.getRootThread().getFirstBlip(); assertEquals(convBlip.getId(), convBlip.getBlip().getId()); }
public void testAppendInlineReplyUpdatesManifest() { WaveletBasedConversationBlip blip = target.getRootThread().appendBlip(); WaveletBasedConversationThread reply = blip.addReplyThread(locateAfterLineElement( blip.getContent())); WaveletBasedConversationBlip replyBlip = reply.appendBlip(); assertManifestXml("<blip id=\"" + blip.getId() + "\">" + "<thread id=\"" + reply.getId() + "\" inline=\"true\">" + "<blip id=\"" + replyBlip.getId() + "\"></blip>" + "</thread>" + "</blip>"); assertEquals(Blips.INITIAL_HEAD + "<body><line></line><reply id=\"" + reply.getId() + "\"></reply></body>", XmlStringBuilder.innerXml(blip.getContent()).toString()); assertMirrorConversationEquivalent(); }
public void testAppendInlineReplyUpdatesManifest() { WaveletBasedConversationBlip blip = target.getRootThread().appendBlip(); WaveletBasedConversationThread reply = blip.addReplyThread(locateAfterLineElement( blip.getContent())); WaveletBasedConversationBlip replyBlip = reply.appendBlip(); assertManifestXml("<blip id=\"" + blip.getId() + "\">" + "<thread id=\"" + reply.getId() + "\" inline=\"true\">" + "<blip id=\"" + replyBlip.getId() + "\"></blip>" + "</thread>" + "</blip>"); assertEquals(Blips.INITIAL_HEAD + "<body><line></line><reply id=\"" + reply.getId() + "\"></reply></body>", XmlStringBuilder.innerXml(blip.getContent()).toString()); assertMirrorConversationEquivalent(); }
"<blip id=\"" + firstBlip.getId() + "\">" + "<thread id=\"" + firstReply.getId() + "\">" + "<blip id=\"" + firstReplyFirstBlip.getId() + "\"></blip>" + "</thread>" + "<thread id=\"" + secondReply.getId() + "\" inline=\"true\">" + "<blip id=\"" + secondReplyFirstBlip.getId() + "\"></blip>" + "</thread>" + "</blip>" + "<blip id=\"" + secondBlip.getId() + "\"></blip>"); assertMirrorConversationEquivalent();
"<blip id=\"" + firstBlip.getId() + "\">" + "<thread id=\"" + firstReply.getId() + "\">" + "<blip id=\"" + firstReplyFirstBlip.getId() + "\"></blip>" + "</thread>" + "<thread id=\"" + secondReply.getId() + "\" inline=\"true\">" + "<blip id=\"" + secondReplyFirstBlip.getId() + "\"></blip>" + "</thread>" + "</blip>" + "<blip id=\"" + secondBlip.getId() + "\"></blip>"); assertMirrorConversationEquivalent();