repositoryProvider = $repositoryProvider; } public function findByReferenceCollection($references) { $references = $this->normalizeReferenceCollection($references); $groups = []; foreach ($references->groupPerDataboxId() as $databoxId => $indexes) { $this->getRepositoryForDatabox($databoxId)->findByRecordIds(array_keys($indexes)); } if ($groups) { return call_user_func_array('array_merge', $groups); } return []; } /** * @param RecordReferenceInterface[]|RecordReferenceCollection $references * @return RecordReferenceCollection */ public function normalizeReferenceCollection($references) { if ($references instanceof RecordReferenceCollection) { return $references; } return new RecordReferenceCollection($references); } /** * @param int $databoxId * @return CaptionRepository */ private function getRepositoryForDatabox($databoxId) { return $this->repositoryProvider->getRepositoryForDatabox($databoxId); } }