/**
  * @param BrowserSessionEntity $browserSession
  */
 public function mergeOrPersist(BrowserSessionEntity $browserSession)
 {
     if (!$browserSession->getId()) {
         $this->persist($browserSession);
     } else {
         $this->merge($browserSession);
     }
 }
 /**
  * @param BrowserSessionEntity $object
  * @return BrowserSessionEntity
  */
 public function onFetch($object)
 {
     $variables = $object->getVariables();
     $object->setVariables($collection = new ArrayCollection());
     foreach ($variables as $variable) {
         $variable->setBrowserSession($object);
         $collection->set($variable->getKey(), $variable);
     }
     return $object;
 }
 public function saveCookie(BrowserSessionEntity $browserSession)
 {
     $config = $this->getConfig();
     $cookie = new Cookie();
     $cookie->setName(BrowserSessionEntity::COOKIE_KEY);
     $cookie->setValue($browserSession->getToken());
     $cookie->setExpiration($browserSession->getExpirationDate());
     $cookie->setPath($config->getPath());
     $cookie->setDomain($config->getDomain());
     $cookie->setIsSecure($config->isSecure());
     $cookie->setIsHttpOnly($config->isHttponly());
     $this->getRouterDriver()->addCookie($cookie);
 }