/**
  * {@inheritdoc}
  */
 public function listenEvent(Formatter $formatter, Event $event, $eventName)
 {
     if ($this->value !== $formatter->getParameter($this->name)) {
         return;
     }
     $this->descendant->listenEvent($formatter, $event, $eventName);
 }
 /**
  * {@inheritdoc}
  */
 public function listenEvent(Formatter $formatter, Event $event, $eventName)
 {
     $this->flushStatesIfBeginningOfTheFeature($eventName);
     $this->markBeginningOrEndOfTheBackground($eventName);
     if ($this->isSkippableEvent($event)) {
         return;
     }
     $this->markFirstBackgroundPrintedAfterBackground($eventName);
     $this->descendant->listenEvent($formatter, $event, $eventName);
 }
 /**
  * {@inheritdoc}
  */
 public function listenEvent(Formatter $formatter, Event $event, $eventName)
 {
     if ($this->beforeEventName === $eventName) {
         $this->inContext = true;
     }
     if ($this->inContext) {
         $this->descendant->listenEvent($formatter, $event, $eventName);
     }
     if ($this->afterEventName === $eventName) {
         $this->inContext = false;
     }
 }
 /**
  * Proxies event to the listener.
  *
  * @param Event       $event
  * @param null|string $eventName
  */
 public function listenEvent(Event $event, $eventName = null)
 {
     $eventName = $eventName ?: $event->getName();
     $this->listener->listenEvent($this, $event, $eventName);
 }