mergedMessageProcessor = $mergedMessageProcessor; $this->defaultMessageProcessor = $defaultMessageProcessor; } /** * Loads message processor depending on the message type. * * @param array $messages * @return MessageProcessorInterface */ public function load(array $messages) { $message = $this->getMergedMessage($messages); return ($message instanceof MergedMessageInterface) ? $this->mergedMessageProcessor : $this->defaultMessageProcessor; } /** * Get first message from the list of merged messages. * * @param array $messages * @return mixed|null */ private function getMergedMessage(array $messages) { $message = null; if ($messages) { $topicMessages = array_shift($messages); if ($topicMessages) { $message = array_shift($topicMessages); } } return $message; } }