/** * @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)); } }