/** * Serialize additional parameters * * @param OperationInterface $operation Operation that owns the command * @param CommandInterface $command Command to prepare * @param RequestInterface $request Request to serialize * @param Parameter $additional Additional parameters * * @return null|RequestVisitorInterface */ protected function prepareAdditionalParameters(OperationInterface $operation, CommandInterface $command, RequestInterface $request, Parameter $additional) { if (!($location = $additional->getLocation())) { return; } $visitor = $this->factory->getRequestVisitor($location); foreach ($command->getAll() as $key => $value) { // Ignore values that are null or built-in command options if ($value !== null && $key != 'command.headers' && $key != 'command.response_processing' && !$operation->hasParam($key)) { $additional->setName($key); $visitor->visit($command, $request, $additional, $value); } } return $visitor; }