protected function jobToText($job)
    {
        $packageName = $job['packageName'];
        $constraint = $job['constraint'];
        switch ($job['cmd']) {
            case 'install':
                $packages = $this->pool->whatProvides($packageName, $constraint);
                if (!$packages) {
                    return 'No package found to satisfy install request for '.$packageName.$this->constraintToText($constraint);
                }

                return 'Installation request for '.$packageName.$this->constraintToText($constraint).' -> satisfiable by '.$this->getPackageList($packages).'.';
            case 'update':
                return 'Update request for '.$packageName.$this->constraintToText($constraint).'.';
            case 'remove':
                return 'Removal request for '.$packageName.$this->constraintToText($constraint).'';
        }

        if (isset($constraint)) {
            $packages = $this->pool->whatProvides($packageName, $constraint);
        } else {
            $packages = array();
        }

        return 'Job(cmd='.$job['cmd'].', target='.$packageName.', packages=['.$this->getPackageList($packages).'])';
    }