/** * @param array $metadata * @return GenericCommandMessage */ public function withMetaData(array $metadata = []) { if ($this->metaData->isEqualTo($metadata)) { return $this; } return new GenericCommandMessage($this->payload, new MetaData($metadata), $this->id, $this->commandName); }