/**
  * @param AbstractMappingEvent $event
  *
  * @throws DocumentManagerException
  */
 public function handleLocale(AbstractMappingEvent $event)
 {
     $document = $event->getDocument();
     if (!$document instanceof LocaleBehavior) {
         return;
     }
     $event->getAccessor()->set('locale', $this->registry->getLocaleForDocument($document));
 }
 /**
  * @param RefreshEvent $event
  */
 public function handleRefresh(RefreshEvent $event)
 {
     $document = $event->getDocument();
     $node = $this->documentRegistry->getNodeForDocument($document);
     $locale = $this->documentRegistry->getLocaleForDocument($document);
     // revert/reload the node to the persisted state
     $node->revert();
     // rehydrate the document
     $hydrateEvent = new HydrateEvent($node, $locale);
     $hydrateEvent->setDocument($document);
     $this->eventDispatcher->dispatch(Events::HYDRATE, $hydrateEvent);
 }
 /**
  * Return the locale for the given document.
  *
  * @param object $document
  *
  * @return string
  */
 public function getLocale($document)
 {
     return $this->documentRegistry->getLocaleForDocument($document);
 }