/**
  * @param CommandMessage  $message
  * @param MiddlewareChain $chain
  * @return CommandMessage
  */
 public function handle(CommandMessage $message, MiddlewareChain $chain)
 {
     $message = $message->withMetaData(new MetaData(['string' => sprintf('%s.%s', $message->metaData()->get('string'), $this->string)]));
     return $chain->proceed($message);
 }
 /**
  * @param CommandMessage  $message
  * @param MiddlewareChain $chain
  * @return CommandMessage
  */
 public function handle(CommandMessage $message, MiddlewareChain $chain)
 {
     $handler = $this->resolver->locate($message);
     $handler->handle($message);
     return $chain->proceed($message);
 }
 /**
  * @param CommandMessage $message
  * @return void
  */
 public function dispatch(CommandMessage $message)
 {
     $this->chain->proceed($message);
 }