/** * 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()); }