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

PackageAbstraction   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 19
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 19
rs 10
wmc 4
lcom 0
cbo 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A calculate() 0 16 4
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