/**
  * Sets the date and time when this node becomes potentially visible.
  *
  * @param \DateTime $dateTime Date before this node should be hidden
  * @return void
  * @api
  */
 public function setHiddenBeforeDateTime(\DateTime $dateTime = null)
 {
     if (!$this->isNodeDataMatchingContext()) {
         $this->materializeNodeData();
     }
     if ($this->getHiddenBeforeDateTime() instanceof \DateTime && $dateTime instanceof \DateTime && $this->getHiddenBeforeDateTime()->format(\DateTime::W3C) === $dateTime->format(\DateTime::W3C)) {
         return;
     }
     $this->nodeData->setHiddenBeforeDateTime($dateTime);
     $this->context->getFirstLevelNodeCache()->flush();
     $this->emitNodeUpdated($this);
 }