public function getDataSource(array $configuration, Parameters $parameters)
{
if (!array_key_exists('class', $configuration)) {
throw new \InvalidArgumentException('"class" must be configured.');
}
$repository = $this->managerRegistry->getManagerForClass($configuration['class'])->getRepository($configuration['class']);
if (isset($configuration['repository']['method'])) {
$method = $configuration['repository']['method'];
$arguments = isset($configuration['repository']['arguments']) ? array_values($configuration['repository']['arguments']) : [];
$queryBuilder = $repository->{$method}(...$arguments);
} else {
$queryBuilder = $repository->createQueryBuilder('o');
}
return new DataSource($queryBuilder);
}