/**
  *
  * @param string $identifier
  * @return Message
  */
 public function getMessage($identifier)
 {
     $doctrineMessage = $this->messageRepository->findByIdentifier($identifier);
     $message = new Message();
     $message->setIdentifier($doctrineMessage->getIdentifier());
     $message->setState($doctrineMessage->getState());
     $message->setPayload($doctrineMessage->getPayload());
     return $message;
 }
 /**
  * Decode a message from a string representation
  *
  * @param string $value
  * @return Message
  */
 protected function decodeMessage($value)
 {
     $decodedMessage = json_decode($value, TRUE);
     $message = new Message($decodedMessage['payload']);
     if (isset($decodedMessage['identifier'])) {
         $message->setIdentifier($decodedMessage['identifier']);
     }
     $message->setOriginalValue($value);
     return $message;
 }
 /**
  * @param Message $message
  * @return void
  */
 public function finish(Message $message)
 {
     unset($this->processing[$message->getIdentifier()]);
 }