/**
  * @param PostRevision|PostSummary $object
  * @param array $metadata
  * @return string alphadecimal uuid
  * @throws InvalidInputException When $object is not PostRevision or PostSummary
  */
 protected function findTopicRootId($object, array $metadata)
 {
     if (isset($metadata['workflow']) && $metadata['workflow'] instanceof Workflow) {
         return $metadata['workflow']->getId();
     } elseif ($object instanceof PostRevision) {
         return $object->getRootPost()->getPostId()->getAlphadecimal();
     } elseif ($object instanceof PostSummary) {
         return $object->getCollection()->getWorkflowId()->getAlphadecimal();
     } else {
         throw new InvalidInputException('Unexpected revision type: ' . get_class($object));
     }
 }