/**
  * @param DeepCloneAndSaveEvent $event
  */
 public function postDeepCloneAndSave(DeepCloneAndSaveEvent $event)
 {
     $originalEntity = $event->getEntity();
     if ($originalEntity instanceof AbstractEntity) {
         /* @var Seo $seo */
         $seo = $this->em->getRepository('KunstmaanSeoBundle:Seo')->findFor($originalEntity);
         if (!is_null($seo)) {
             /* @var Seo $clonedSeo */
             $clonedSeo = $this->cloneHelper->deepCloneAndSave($seo);
             $clonedSeo->setRef($event->getClonedEntity());
             $this->em->persist($clonedSeo);
             $this->em->flush($clonedSeo);
         }
     }
 }
 /**
  * This shouldn't be here either but it's an improvement.
  *
  * @param HasNodeInterface $page            The page
  * @param NodeTranslation  $nodeTranslation The node translation
  * @param NodeVersion      $nodeVersion     The node version
  * @param BaseUser         $user            The user
  *
  * @return mixed
  */
 public function createPublicVersion(HasNodeInterface $page, NodeTranslation $nodeTranslation, NodeVersion $nodeVersion, BaseUser $user)
 {
     $newPublicPage = $this->cloneHelper->deepCloneAndSave($page);
     $newNodeVersion = $this->em->getRepository('KunstmaanNodeBundle:NodeVersion')->createNodeVersionFor($newPublicPage, $nodeTranslation, $user, $nodeVersion);
     $newNodeVersion->setOwner($nodeVersion->getOwner())->setUpdated($nodeVersion->getUpdated())->setCreated($nodeVersion->getCreated());
     $nodeVersion->setOwner($user)->setCreated(new \DateTime())->setOrigin($newNodeVersion);
     $this->em->persist($newNodeVersion);
     $this->em->persist($nodeVersion);
     $this->em->persist($nodeTranslation);
     $this->em->flush();
     $this->eventDispatcher->dispatch(Events::CREATE_PUBLIC_VERSION, new NodeEvent($nodeTranslation->getNode(), $nodeTranslation, $nodeVersion, $newPublicPage));
     return $newNodeVersion;
 }