Completed
Push — master ( e1173d...cdf0e4 )
by Oskar
05:16 queued 03:02
created

PackageAbstraction::calculate()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 16
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 4
eloc 10
c 0
b 0
f 0
nc 4
nop 1
dl 0
loc 16
rs 9.2
1
<?php
2
3
namespace Hal\Metric\Package;
4
5
use Hal\Metric\Metrics;
6
use Hal\Metric\PackageMetric;
7
8
class PackageAbstraction
9
{
10
    public function calculate(Metrics $metrics)
11
    {
12
        /* @var $packages PackageMetric[] */
13
        foreach ($metrics->all() as $eachPackage) {
14
            if (! $eachPackage instanceof PackageMetric) {
15
                continue;
16
            }
17
            $abstractClassCount = 0;
18
            $classCount = count($eachPackage->getClasses());
19
            foreach ($eachPackage->getClasses() as $eachClassName) {
20
                $eachClass = $metrics->get($eachClassName);
21
                $abstractClassCount += $eachClass->get('abstract');
22
            }
23
            $eachPackage->setAbstraction($abstractClassCount / $classCount);
24
        }
25
    }
26
}
27