/** * Constructor. * * @param IndexManager $indexManager * @param string $documentClass * @param Finder $finder * @param DocumentMetadataCollector $metadataCollector */ public function __construct(IndexManager $indexManager, $documentClass, Finder $finder, DocumentMetadataCollector $metadataCollector) { $this->indexManager = $indexManager; $this->documentClass = $documentClass; $this->finder = $finder; $this->documentMetadataCollector = $metadataCollector; if ($this->documentMetadataCollector->getDocumentClassIndex($documentClass) !== $indexManager->getManagerName()) { throw new \InvalidArgumentException(sprintf('Type "%s" is not managed by index "%s"', $documentClass, $indexManager->getManagerName())); } // Get the metadata of the document class managed by the repository $this->metadata = $this->documentMetadataCollector->getDocumentMetadata($documentClass); }
/** * Constructor. * * @param IndexManager $indexManager * @param string $documentClass * @param Finder $finder * @param string $languageSeparator */ public function __construct($indexManager, $documentClass, Finder $finder, $languageSeparator) { $this->indexManager = $indexManager; $this->documentClass = $documentClass; $this->finder = $finder; $this->languageSeparator = $languageSeparator; // Get the metadata of the document class managed by the repository $metadata = $this->getManager()->getDocumentsMetadata([$documentClass]); if (empty($metadata)) { throw new \InvalidArgumentException(sprintf('Type "%s" is not managed by index "%s"', $documentClass, $indexManager->getManagerName())); } $this->metadata = $metadata[$documentClass]; }