コード例 #1
0
ファイル: Xml.php プロジェクト: KingNoosh/Teknik
 /**
  * Visits a class node.
  *
  * @param PHP_Depend_Code_Class $class The current class node.
  *
  * @return void
  * @see PHP_Depend_VisitorI::visitClass()
  */
 public function visitClass(PHP_Depend_Code_Class $class)
 {
     if (!$class->isUserDefined()) {
         return;
     }
     $doc = $this->packages->ownerDocument;
     $classXml = $doc->createElement('Class');
     $classXml->setAttribute('sourceFile', (string) $class->getSourceFile());
     $classXml->appendChild($doc->createTextNode($class->getName()));
     if ($class->isAbstract()) {
         $this->abstractClasses->appendChild($classXml);
     } else {
         $this->concreteClasses->appendChild($classXml);
     }
 }
コード例 #2
0
ファイル: ClassTest.php プロジェクト: rouffj/pdepend
 /**
  * testIsUserDefinedReturnsFalseByDefault
  *
  * @return void
  */
 public function testIsUserDefinedReturnsFalseByDefault()
 {
     $class = new PHP_Depend_Code_Class(__CLASS__);
     self::assertFalse($class->isUserDefined());
 }
コード例 #3
0
ファイル: Analyzer.php プロジェクト: rouffj/pdepend
 /**
  * Calculates metrics for the given <b>$class</b> instance.
  *
  * @param PHP_Depend_Code_Class $class The context class instance.
  *
  * @return void
  * @see PHP_Depend_VisitorI::visitClass()
  */
 public function visitClass(PHP_Depend_Code_Class $class)
 {
     if (false === $class->isUserDefined()) {
         return;
     }
     $this->fireStartClass($class);
     ++$this->_cls;
     if ($class->isAbstract()) {
         ++$this->_clsa;
     }
     $parentClass = $class->getParentClass();
     if ($parentClass !== null) {
         if ($parentClass->getParentClass() === null) {
             $this->_roots[$parentClass->getUUID()] = true;
         }
         $this->_noneLeafs[$parentClass->getUUID()] = true;
     }
     // Store node metric
     $this->_nodeMetrics[$class->getUUID()] = array();
     foreach ($class->getMethods() as $method) {
         $method->accept($this);
     }
     foreach ($class->getProperties() as $property) {
         $property->accept($this);
     }
     $this->fireEndClass($class);
 }
コード例 #4
0
ファイル: Parser.php プロジェクト: noelg/phpmd
 /**
  * Visits a class node.
  *
  * @param PHP_Depend_Code_Class $node The current class node.
  *
  * @return void
  * @see PHP_Depend_VisitorI::visitClass()
  */
 public function visitClass(PHP_Depend_Code_Class $node)
 {
     if (!$node->isUserDefined()) {
         return;
     }
     $this->_apply(new PHP_PMD_Node_Class($node));
     parent::visitClass($node);
 }
コード例 #5
0
ファイル: Xml.php プロジェクト: Tjorriemorrie/app
 /**
  * Visits a class node.
  *
  * @param PHP_Depend_Code_Class $class The current class node.
  *
  * @return void
  * @see PHP_Depend_VisitorI::visitClass()
  */
 public function visitClass(PHP_Depend_Code_Class $class)
 {
     if (!$class->isUserDefined()) {
         return;
     }
     $xml = end($this->_xmlStack);
     $doc = $xml->ownerDocument;
     $classXml = $doc->createElement('class');
     $classXml->setAttribute('name', $class->getName());
     $this->writeNodeMetrics($classXml, $class);
     $this->writeFileReference($classXml, $class->getSourceFile());
     $xml->appendChild($classXml);
     array_push($this->_xmlStack, $classXml);
     foreach ($class->getMethods() as $method) {
         $method->accept($this);
     }
     foreach ($class->getProperties() as $property) {
         $property->accept($this);
     }
     array_pop($this->_xmlStack);
 }
コード例 #6
0
ファイル: Analyzer.php プロジェクト: yusufchang/app
 /**
  * Visits a class node.
  *
  * @param PHP_Depend_Code_Class $class The current class node.
  *
  * @return void
  * @see PHP_Depend_Visitor_AbstractVisitor::visitClass()
  */
 public function visitClass(PHP_Depend_Code_Class $class)
 {
     if (!$class->isUserDefined()) {
         return;
     }
     $this->fireStartClass($class);
     $this->_initNodeMetricsForClass($class);
     $this->_calculateNumberOfDerivedClasses($class);
     $this->_calculateNumberOfAddedAndOverwrittenMethods($class);
     $this->_calculateDepthOfInheritanceTree($class);
     $this->fireEndClass($class);
 }
コード例 #7
0
ファイル: Analyzer.php プロジェクト: yusufchang/app
 /**
  * Visits a class node.
  *
  * @param PHP_Depend_Code_Class $class The current class node.
  *
  * @return void
  * @see PHP_Depend_VisitorI::visitClass()
  */
 public function visitClass(PHP_Depend_Code_Class $class)
 {
     if (false === $class->isUserDefined()) {
         return;
     }
     $this->fireStartClass($class);
     // Update global class count
     ++$this->_noc;
     // Update parent package
     $packageUUID = $class->getPackage()->getUUID();
     ++$this->_nodeMetrics[$packageUUID][self::M_NUMBER_OF_CLASSES];
     $this->_nodeMetrics[$class->getUUID()] = array(self::M_NUMBER_OF_METHODS => 0);
     foreach ($class->getMethods() as $method) {
         $method->accept($this);
     }
     $this->fireEndClass($class);
 }