/**
  * Finds the parent of a blip. The parent is the preceding blip in the thread, or the blip to
  * which the thread is a reply for the first blip in a thread. The first blip of the root thread
  * has no parent.
  *
  * @param blip the blip.
  * @return the blip's parent, or {@code null} if the blip is the first blip in a conversation.
  */
 @Override
 public ConversationBlip findBlipParent(ConversationBlip blip) {
   ConversationThread containingThread = blip.getThread();
   if (containingThread.getFirstBlip() == blip
       && containingThread != blip.getConversation().getRootThread()) {
     return containingThread.getParentBlip();
   }
   return findPreviousSibling(blip);
 }