Skip to content

Commit

Permalink
[implements #9997915] Implement Number of Public Methods metric
Browse files Browse the repository at this point in the history
  • Loading branch information
manuelpichler committed Feb 16, 2011
1 parent bbe3559 commit 2dd3ebf
Show file tree
Hide file tree
Showing 13 changed files with 216 additions and 42 deletions.
7 changes: 5 additions & 2 deletions src/main/php/PHP/Depend/Metrics/ClassLevel/Analyzer.php
Expand Up @@ -78,6 +78,7 @@ class PHP_Depend_Metrics_ClassLevel_Analyzer
const M_IMPLEMENTED_INTERFACES = 'impl',
M_CLASS_INTERFACE_SIZE = 'cis',
M_CLASS_SIZE = 'csz',
M_NUMBER_OF_PUBLIC_METHODS = 'npm',
M_PROPERTIES = 'vars',
M_PROPERTIES_INHERIT = 'varsi',
M_PROPERTIES_NON_PRIVATE = 'varsnp',
Expand All @@ -103,14 +104,14 @@ class PHP_Depend_Metrics_ClassLevel_Analyzer
* )
* </code>
*
* @var array(string=>array) $_nodeMetrics
* @var array(string=>array)
*/
private $_nodeMetrics = null;

/**
* The internal used cyclomatic complexity analyzer.
*
* @var PHP_Depend_Metrics_CyclomaticComplexity_Analyzer $_cyclomaticAnalyzer
* @var PHP_Depend_Metrics_CyclomaticComplexity_Analyzer
*/
private $_cyclomaticAnalyzer = null;

Expand Down Expand Up @@ -208,6 +209,7 @@ public function visitClass(PHP_Depend_Code_Class $class)
self::M_IMPLEMENTED_INTERFACES => $class->getInterfaces()->count(),
self::M_CLASS_INTERFACE_SIZE => 0,
self::M_CLASS_SIZE => 0,
self::M_NUMBER_OF_PUBLIC_METHODS => 0,
self::M_PROPERTIES => 0,
self::M_PROPERTIES_INHERIT => $this->_calculateVARSi($class),
self::M_PROPERTIES_NON_PRIVATE => 0,
Expand Down Expand Up @@ -263,6 +265,7 @@ public function visitMethod(PHP_Depend_Code_Method $method)

// Increment Non Private values
if ($method->isPublic()) {
++$this->_nodeMetrics[$uuid][self::M_NUMBER_OF_PUBLIC_METHODS];
// Increment Non Private WMC value
$this->_nodeMetrics[$uuid][self::M_WEIGHTED_METHODS_NON_PRIVATE] += $ccn;
// Increment Class Interface Size(CIS) value
Expand Down
6 changes: 3 additions & 3 deletions src/test/php/PHP/Depend/Log/Phpunit/_expected/phpunit-log.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<metrics ahh="0" andc="0" calls="30" ccn="21" classes="3" cloc="217" clsa="0" clsc="3" fanout="29" files="4" functions="2" interfs="2" leafs="3" lloc="57" loc="336" locExecutable="101" maxdit="0" ncloc="119" nom="6" nop="1" roots="0">
<file name="/home/manu/Desktop/Projects/workspace.xplib.de/PHP_Depend/trunk/tests/PHP/Depend/_code/log/phpunit/testPHPUnitLoggerResult/class.php" classes="2" cloc="84" functions="0" lloc="21" loc="128" locExecutable="36" ncloc="44">
<class name="MyCouplingClass" ca="0" cbo="8" ce="8" cis="3" cloc="46" cr="0.15" csz="6" dit="0" impl="0" lloc="13" loc="82" locExecutable="22" ncloc="36" noam="0" nocc="0" nom="2" noom="0" rcr="0.15" vars="4" varsi="4" varsnp="1" wmc="7" wmci="7" wmcnp="7">
<class name="MyCouplingClass" ca="0" cbo="8" ce="8" cis="3" cloc="46" cr="0.15" csz="6" dit="0" impl="0" lloc="13" loc="82" locExecutable="22" ncloc="36" noam="0" nocc="0" nom="2" noom="0" npm="2" rcr="0.15" vars="4" varsi="4" varsnp="1" wmc="7" wmci="7" wmcnp="7">
<method name="removeItemAt" ccn="3" cloc="0" lloc="5" loc="10" locExecutable="9" ncloc="10"/>
<method name="getItemAt" ccn="4" cloc="0" lloc="8" loc="14" locExecutable="13" ncloc="14"/>
</class>
Expand All @@ -10,7 +10,7 @@
</class>
</file>
<file name="/home/manu/Desktop/Projects/workspace.xplib.de/PHP_Depend/trunk/tests/PHP/Depend/_code/log/phpunit/testPHPUnitLoggerResult/method.php" classes="2" cloc="64" functions="0" lloc="17" loc="100" locExecutable="32" ncloc="36">
<class name="MyMethodCouplingClass" ca="0" cbo="6" ce="6" cis="2" cloc="26" cr="0.15" csz="2" dit="0" impl="0" lloc="13" loc="54" locExecutable="22" ncloc="28" noam="0" nocc="0" nom="2" noom="0" rcr="0.15" vars="0" varsi="0" varsnp="0" wmc="7" wmci="7" wmcnp="7">
<class name="MyMethodCouplingClass" ca="0" cbo="6" ce="6" cis="2" cloc="26" cr="0.15" csz="2" dit="0" impl="0" lloc="13" loc="54" locExecutable="22" ncloc="28" noam="0" nocc="0" nom="2" noom="0" npm="2" rcr="0.15" vars="0" varsi="0" varsnp="0" wmc="7" wmci="7" wmcnp="7">
<method name="getItemAt" ccn="4" cloc="0" lloc="8" loc="14" locExecutable="13" ncloc="14"/>
<method name="removeItemAt" ccn="3" cloc="0" lloc="5" loc="10" locExecutable="9" ncloc="10"/>
</class>
Expand All @@ -19,7 +19,7 @@
</class>
</file>
<file name="/home/manu/Desktop/Projects/workspace.xplib.de/PHP_Depend/trunk/tests/PHP/Depend/_code/log/phpunit/testPHPUnitLoggerResult/property.php" classes="1" cloc="36" functions="0" lloc="4" loc="48" locExecutable="8" ncloc="12">
<class name="MyPropertyCouplingClass" ca="0" cbo="3" ce="3" cis="1" cloc="20" cr="0.15" csz="4" dit="0" impl="0" lloc="0" loc="30" locExecutable="0" ncloc="10" noam="0" nocc="0" nom="0" noom="0" rcr="0.15" vars="4" varsi="4" varsnp="1" wmc="0" wmci="0" wmcnp="0"/>
<class name="MyPropertyCouplingClass" ca="0" cbo="3" ce="3" cis="1" cloc="20" cr="0.15" csz="4" dit="0" impl="0" lloc="0" loc="30" locExecutable="0" ncloc="10" noam="0" nocc="0" nom="0" noom="0" npm="0" rcr="0.15" vars="4" varsi="4" varsnp="1" wmc="0" wmci="0" wmcnp="0"/>
</file>
<file name="/home/manu/Desktop/Projects/workspace.xplib.de/PHP_Depend/trunk/tests/PHP/Depend/_code/log/phpunit/testPHPUnitLoggerResult/function.php" classes="0" cloc="33" functions="2" lloc="15" loc="60" locExecutable="25" ncloc="27">
<function name="getItemAt" ccn="4" cloc="0" lloc="8" loc="14" locExecutable="13" ncloc="14"/>
Expand Down

0 comments on commit 2dd3ebf

Please sign in to comment.