/** * Analyzes the given project descriptor and populates this object's properties. * * @param ProjectDescriptor $projectDescriptor * * @return void */ public function analyze(ProjectDescriptor $projectDescriptor) { $this->unresolvedParentClassesCount = 0; $elementCounter = array(); foreach ($projectDescriptor->getIndexes()->elements as $element) { if (!isset($elementCounter[get_class($element)])) { $elementCounter[get_class($element)] = 0; } $elementCounter[get_class($element)]++; if ($element instanceof ClassDescriptor) { if (is_string($element->getParent())) { $this->unresolvedParentClassesCount++; } } } $this->descriptorCountByType = $elementCounter; $this->fileCount = count($projectDescriptor->getFiles()); $this->topLevelNamespaceCount = count($projectDescriptor->getNamespace()->getChildren()); }
/** * Returns all elements from the project descriptor. * * @param ProjectDescriptor $projectDescriptor * * @return DescriptorAbstract[] */ protected function findAllElements(ProjectDescriptor $projectDescriptor) { return $projectDescriptor->getIndexes()->get('elements', new Collection()); }