protected function constructCommand()
    {
        $command = array();
        $command[] = $this->executable;

        if (!empty($this->options)) {
            $command[] = "-".implode($this->options);
        }

        foreach ($this->arguments as $argument => $values) {
            foreach ($values as $value) {
                if (strlen($argument) == 1) {
                    $command[] = "-".$argument." '".$value."'";
                } else {
                    $command[] = "--".(is_string($value) || is_int($value) ? $argument." '".$value."'" : $argument);
                }
            }
        }

        if (!empty($this->parameters)) {
            $command[] = implode(" ", $this->parameters);
        }

        $stringCommand = implode(" ", $command);

        return $stringCommand;
    }