/** * @param DataSourceInterface $dataSource * @param EntityManager $entityManager */ public function __construct(DataSourceInterface $dataSource, EntityManager $entityManager) { $this->dataSource = $dataSource; $this->entityManager = $entityManager; $fields = $dataSource->getFields(); $transformers = $dataSource->getTransformers(); $this->requiredFieldsExtractor = new RequiredFieldsExtractor($fields, $transformers); $this->joinGenerator = new JoinGenerator($fields, $this->getFromAlias(), $this->requiredFieldsExtractor); $this->selectGenerator = new SelectGenerator($fields, $this->getFromAlias(), $this->joinGenerator, $this->requiredFieldsExtractor); $this->filterer = new Filterer(); $this->sorter = new Sorter(); $this->paginator = new Paginator(); }