PDepend\Metrics\Analyzer\NodeLocAnalyzer::visitCompilationUnit PHP Method

visitCompilationUnit() public method

Visits a file node.
public visitCompilationUnit ( ASTCompilationUnit $compilationUnit ) : void
$compilationUnit PDepend\Source\AST\ASTCompilationUnit
return void
    public function visitCompilationUnit(ASTCompilationUnit $compilationUnit)
    {
        // Skip for dummy files
        if ($compilationUnit->getFileName() === null) {
            return;
        }
        // Check for initial file
        $id = $compilationUnit->getId();
        if (isset($this->metrics[$id])) {
            return;
        }
        $this->fireStartFile($compilationUnit);
        if ($this->restoreFromCache($compilationUnit)) {
            $this->updateProjectMetrics($id);
            return $this->fireEndFile($compilationUnit);
        }
        list($cloc, $eloc, $lloc) = $this->linesOfCode($compilationUnit->getTokens());
        $loc = $compilationUnit->getEndLine();
        $ncloc = $loc - $cloc;
        $this->metrics[$id] = array(self::M_LINES_OF_CODE => $loc, self::M_COMMENT_LINES_OF_CODE => $cloc, self::M_EXECUTABLE_LINES_OF_CODE => $eloc, self::M_LOGICAL_LINES_OF_CODE => $lloc, self::M_NON_COMMENT_LINES_OF_CODE => $ncloc);
        $this->updateProjectMetrics($id);
        $this->fireEndFile($compilationUnit);
    }