private function createRepository(EntityManagerInterface $entityManager, Doctrine\ORM\Mapping\ClassMetadata $metadata)
{
$defaultClass = $entityManager->getConfiguration()->getDefaultRepositoryClassName();
$customClass = ltrim($metadata->customRepositoryClassName, '\\');
if (empty($customClass) || $customClass === $defaultClass) {
$factory = $this->getRepositoryFactory($this->defaultRepositoryFactory);
} elseif (isset($this->repositoryServicesMap[$customClass])) {
$factory = $this->getRepositoryFactory($this->repositoryServicesMap[$customClass]);
} else {
return new $customClass($entityManager, $metadata);
}
return $factory->create($entityManager, $metadata);
}