Factory   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 7

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 7
dl 0
loc 35
ccs 20
cts 20
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A createInconsistencyFinder() 0 23 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Maba\DatabaseInconsistencyFinder\Service;
5
6
use Maba\DatabaseInconsistencyFinder\Database\QueryExecutor;
7
use Maba\DatabaseInconsistencyFinder\Entity\ReferencesConfiguration;
8
use Maba\DatabaseInconsistencyFinder\InconsistencyFinder;
9
use Maba\DatabaseInconsistencyFinder\JobDistribution\SynchronousJobDistributorFactory;
10
11
class Factory
12
{
13
    private $sizeForSeeking;
14
    private $sizeForJobDistribution;
15
16 4
    public function __construct(int $sizeForSeeking = 1000, int $sizeForJobDistribution = 10000)
17
    {
18 4
        $this->sizeForSeeking = $sizeForSeeking;
19 4
        $this->sizeForJobDistribution = $sizeForJobDistribution;
20 4
    }
21
22 4
    public function createInconsistencyFinder(ReferencesConfiguration $referencesConfiguration): InconsistencyFinder
23
    {
24 4
        $queryExecutor = new QueryExecutor();
25 4
        $intervalManager = new IntervalManager($this->sizeForSeeking, $this->sizeForJobDistribution);
26 4
        return new InconsistencyFinder(
27 4
            $referencesConfiguration,
28 4
            $queryExecutor,
29 4
            $intervalManager,
30 4
            new SynchronousJobDistributorFactory(
31 4
                new Worker(
32 4
                    new FastConsistencyValidator(
33 4
                        $referencesConfiguration,
34 4
                        $queryExecutor
35
                    ),
36 4
                    new InconsistencySeeker(
37 4
                        $referencesConfiguration,
38 4
                        $queryExecutor
39
                    ),
40 4
                    $intervalManager
41
                )
42
            )
43
        );
44
    }
45
}
46