/**
  * {@inheritdoc}
  */
 public function executeCommand($command, array $arguments = array())
 {
     if ($this->isConnected()) {
         $this->connection->enableQuietMode();
         $this->connection->setTimeout(0);
         if (empty($arguments) === false) {
             $command = ProcessUtility::escapeArguments($arguments, $command);
         }
         if (isset($this->connection->server_channels[SFTP::CHANNEL_SHELL]) === false) {
             $this->connection->read($this->getShellPromptRegex(), SFTP::READ_REGEX);
         }
         $this->connection->write($command . "\n");
         $output = $this->getFilteredOutput($this->connection->read($this->getShellPromptRegex(), SFTP::READ_REGEX), $command);
         $this->connection->write("echo \$?\n");
         $exitCode = intval($this->getFilteredOutput($this->connection->read($this->getShellPromptRegex(), SFTP::READ_REGEX), 'echo $?'));
         $errorOutput = strval($this->connection->getStdError());
         $this->connection->disableQuietMode();
         return new ProcessExecutionResult($exitCode, $output, $errorOutput);
     }
     return new ProcessExecutionResult(126, '', "Connection adapter not connected.\n");
 }