/** * Generic visit method for classes and interfaces. Both visit methods * delegate calls to this method. * * @param \PDepend\Source\AST\AbstractASTClassOrInterface $type * @return void */ protected function visitType(AbstractASTClassOrInterface $type) { $id = $type->getNamespace()->getId(); // Increment total classes count ++$this->nodeMetrics[$id][self::M_NUMBER_OF_CLASSES]; // Check for abstract or concrete class if ($type->isAbstract()) { ++$this->nodeMetrics[$id][self::M_NUMBER_OF_ABSTRACT_CLASSES]; } else { ++$this->nodeMetrics[$id][self::M_NUMBER_OF_CONCRETE_CLASSES]; } foreach ($type->getDependencies() as $dependency) { $this->collectDependencies($type->getNamespace(), $dependency->getNamespace()); } foreach ($type->getMethods() as $method) { $method->accept($this); } }