/**
  * By using that method the library's own event subscribers will be
  * registered to event managers of matching mangeres set into the
  * configuration.
  */
 public function addListenersToEventManagers()
 {
     $managers = $this->configuration->getManagers();
     $typeBaseMapping = array(Reference::PHPCR => ReferencingBase::PHPCR, Reference::DBAL_ORM => ReferencingBase::DBAL_ORM);
     foreach ($managers as $referenceType => $managerList) {
         if (!isset($typeBaseMapping[$referenceType])) {
             continue;
         }
         $listerClassName = $this->configuration->getReferencingBaseListenerByType($typeBaseMapping[$referenceType]);
         foreach ($managerList as $manager) {
             if (method_exists($manager, 'getEventManager')) {
                 /** @var EventManager $eventManager */
                 $eventManager = $manager->getEventManager();
                 if (null === $eventManager) {
                     continue;
                 }
                 $eventManager->addEventSubscriber(new $listerClassName($this));
             }
         }
     }
 }