/**
  * @param string $type
  * @param AbstractRevision $object
  * @param array $metadata
  * @param array $params
  * @throws InvalidDataException
  */
 protected function notifyPostChange($type, $object, $metadata, array $params = array())
 {
     if (!isset($metadata['workflow'], $metadata['topic-title'])) {
         throw new InvalidDataException('Invalid metadata for revision ' . $object->getRevisionId()->getAlphadecimal(), 'missing-metadata');
     }
     $workflow = $metadata['workflow'];
     if (!$workflow instanceof Workflow) {
         throw new InvalidDataException('Workflow metadata is not a Workflow', 'missing-metadata');
     }
     $this->notificationController->notifyPostChange($type, $params + array('revision' => $object, 'title' => $workflow->getOwnerTitle(), 'topic-workflow' => $workflow, 'topic-title' => $metadata['topic-title']));
 }
 public function afterTopicImported(TopicImportState $state, IImportTopic $topic)
 {
     if (!$topic instanceof LqtImportTopic) {
         return;
     }
     if ($this->postsImported === false) {
         // nothing was imported in this topic
         return;
     }
     $this->postsImported = false;
     $this->controller->notifyPostChange('flow-post-reply', array('revision' => $state->topicTitle, 'topic-title' => $state->topicTitle, 'topic-workflow' => $state->topicWorkflow, 'title' => $state->topicWorkflow->getOwnerTitle(), 'reply-to' => $state->topicTitle, 'extra-data' => array('lqtThreadId' => $topic->getLqtThreadId(), 'notifyAgent' => true), 'timestamp' => $topic->getTimestamp()));
 }