/**
  * @param TopicImportState $state
  * @param IImportPost      $post
  * @param PostRevision     $replyTo
  * @param string           $logPrefix
  */
 public function importPost(TopicImportState $state, IImportPost $post, PostRevision $replyTo, $logPrefix = ' ')
 {
     $state->parent->logger->info($logPrefix . "Importing post");
     $postId = $state->parent->getImportedId($post);
     $topRevision = false;
     if ($postId) {
         $topRevision = $state->parent->getTopRevision('PostRevision', $postId);
     }
     if ($topRevision) {
         $state->parent->logger->info($logPrefix . "Post previously imported");
     } else {
         $replyRevisions = $this->importObjectWithHistory($post, function (IObjectRevision $rev) use($replyTo, $state) {
             return $replyTo->reply($state->topicWorkflow, $state->parent->createUser($rev->getAuthor()), $rev->getText(), 'wikitext');
         }, 'edit-post', $state->parent, $state->topicWorkflow->getArticleTitle());
         $topRevision = end($replyRevisions);
         $metadata = array('workflow' => $state->topicWorkflow, 'board-workflow' => $state->parent->boardWorkflow, 'topic-title' => $state->topicTitle, 'reply-to' => $replyTo);
         $state->parent->put($replyRevisions, $metadata);
         $state->parent->recordAssociation($topRevision->getPostId(), $post);
         $state->parent->logger->info($logPrefix . "Finished importing post with " . count($replyRevisions) . " revisions");
         $state->parent->postprocessor->afterPostImported($state, $post, $topRevision->getPostId());
     }
     $state->recordModificationTime($topRevision->getRevisionId());
     foreach ($post->getReplies() as $subReply) {
         $this->importPost($state, $subReply, $topRevision, $logPrefix . ' ');
     }
 }