/**
  * @return Message
  */
 public function startMessage()
 {
     if (is_null($this->startMessage)) {
         $processingType = $this->payload['start_message']['processing_type'];
         $this->startMessage = Message::emulateProcessingWorkflowMessage(MessageType::fromString($this->payload['start_message']['message_type']), $processingType::prototype(), ProcessingMetadata::fromArray($this->payload['start_message']['metadata']));
     }
     return $this->startMessage;
 }
 /**
  * @return Message
  */
 public function startMessage()
 {
     $startMessage = $this->payload['start_message'];
     if (isset($startMessage['metadata'])) {
         $metadata = ProcessingMetadata::fromArray($startMessage['metadata']);
     } else {
         $metadata = ProcessingMetadata::noData();
     }
     $processingType = $startMessage['processing_type'];
     return Message::emulateProcessingWorkflowMessage(MessageType::fromString($startMessage['message_type']), $processingType::prototype(), $metadata);
 }