Example #1
0
 /**
  * Returns mapped event class from the configuration (if it was previously defined)
  *
  * @param AbstractEntity $entity    Entity for which the corresponding event should be triggered
  *                                  be treated as a command
  * @return null|string
  */
 protected function getEventClass(AbstractEntity $entity)
 {
     $preDefinedEvents = $this->config->getEvents();
     $entityEventType = $entity->getEntityType();
     if (!is_array($preDefinedEvents)) {
         return null;
     }
     foreach ($preDefinedEvents as $preDefinedEvent) {
         if ($preDefinedEvent['type'] == $entityEventType) {
             $className = $preDefinedEvent['class'];
             if ($entity instanceof MessageEntity && $entity->isCommand()) {
                 if (!$this->isCommandSupported($preDefinedEvent, $entity->getCommand())) {
                     continue;
                 }
             }
             if (class_exists($className)) {
                 return $className;
             }
         }
     }
     return null;
 }