/**
  * {@inheritdoc}
  */
 public function filter(EventInterface $event, $value)
 {
     foreach ($this->getListeners($event->getName()) as $listener) {
         if (is_array($listener) && is_string($listener[0])) {
             $listener[0] = $this->container->get($listener[0]);
         }
         $value = call_user_func($listener, $event, $value);
     }
     return $value;
 }
 protected function addCall(EventInterface $event, $listener, $type)
 {
     $listener = $this->listenerToString($listener);
     if (null !== $this->logger) {
         $this->logger->debug(sprintf('Notified event "%s" to listener "%s" (%s)', $event->getName(), $listener, $type));
     }
     $this->called[$event->getName() . '.' . $listener] = array('event' => $event->getName(), 'caller' => null !== $event->getSubject() ? get_class($event->getSubject()) : null, 'listener' => $listener);
 }