PDepend\Metrics\Analyzer\NPathComplexityAnalyzer::visitElseIfStatement PHP Method

visitElseIfStatement() public method

elseif () S; -- NP(elseif) = NP() + NP() + 1 -- elseif () else S; -- NP(if) = NP() + NP() + NP( --
Since: 0.9.12
public visitElseIfStatement ( PDepend\Source\AST\ASTNode $node, string $data ) : string
$node PDepend\Source\AST\ASTNode The currently visited node.
$data string The previously calculated npath value.
return string
    public function visitElseIfStatement($node, $data)
    {
        $npath = $this->sumComplexity($node->getChild(0));
        foreach ($node->getChildren() as $child) {
            if ($child instanceof ASTStatement) {
                $expr = $child->accept($this, 1);
                $npath = MathUtil::add($npath, $expr);
            }
        }
        if (!$node->hasElse()) {
            $npath = MathUtil::add($npath, '1');
        }
        return MathUtil::mul($npath, $data);
    }