RegulatorFactory::make()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 15
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 15
ccs 5
cts 5
cp 1
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 11
nc 2
nop 5
crap 2
1
<?php
2
declare(strict_types = 1);
3
4
namespace Innmind\HomeostasisBundle\Factory\Regulator;
5
6
use Innmind\Homeostasis\{
7
    StateHistory,
8
    Actuator,
9
    Actuator\StrategyDeterminator,
10
    Regulator\Regulator,
11
    Factor
12
};
13
use Innmind\TimeContinuum\TimeContinuumInterface;
14
use Innmind\Immutable\Set;
15
16
final class RegulatorFactory
17
{
18 4
    public static function make(
19
        array $factors,
20
        StateHistory $states,
21
        TimeContinuumInterface $clock,
22
        StrategyDeterminator $determinator,
23
        Actuator $actuator
24
    ): Regulator {
25 4
        $set = new Set(Factor::class);
26
27 4
        foreach ($factors as $factor) {
28 4
            $set = $set->add($factor);
29
        }
30
31 4
        return new Regulator($set, $states, $clock, $determinator, $actuator);
32
    }
33
}
34