public function getClassMap()
    {
        $classMap   = new ClassMap();
        $duplicates = array();

        foreach ($this->validators as $validator) {
            $validatorName   = $validator->getName();
            $partialClassMap = $validator->getClassMap();
            foreach ($partialClassMap as $class => $file) {
                try {
                    $classMap->add($class, $file);
                    $duplicates[$class][$validatorName] = $file;
                } catch (ClassAlreadyRegisteredException $exception) {
                    $duplicates[$class][$validatorName] = $file;
                }
            }
        }

        foreach ($duplicates as $class => $files) {
            if (count($files) === 1) {
                continue;
            }
            $this->report->error(
                new ClassAddedMoreThanOnceViolation(
                    implode(', ', array_keys($files)),
                    $class,
                    $files
                )
            );
        }

        return $classMap;
    }