Completed
Push — master ( 602037...2f570f )
by Marius
06:48 queued 03:50
created

InconsistenciesResult::addMissingReferenceCount()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
crap 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Maba\DatabaseInconsistencyFinder\Entity;
5
6
class InconsistenciesResult
7
{
8
    /**
9
     * @var array of IDs
10
     */
11
    private $orphanedRecordIds;
12
13
    /**
14
     * @var array, associative. ID => number
15
     */
16
    private $missingReferenceCounts;
17
18
    /**
19
     * @var array, associative. ID => number
20
     */
21
    private $invalidReferenceCounts;
22
23 8
    public function __construct()
24
    {
25 8
        $this->orphanedRecordIds = [];
26 8
        $this->missingReferenceCounts = [];
27 8
        $this->invalidReferenceCounts = [];
28 8
    }
29
30 5
    public function areInconsistenciesFound(): bool
31
    {
32
        return (
33 5
            count($this->orphanedRecordIds) > 0
34 5
            || count($this->missingReferenceCounts) > 0
35 5
            || count($this->invalidReferenceCounts) > 0
36
        );
37
    }
38
39
    /**
40
     * @return array
41
     */
42 3
    public function getOrphanedRecordIds(): array
43
    {
44 3
        return $this->orphanedRecordIds;
45
    }
46
47
    /**
48
     * @param array $orphanedRecordIds
49
     * @return $this
50
     */
51 3
    public function setOrphanedRecordIds(array $orphanedRecordIds): self
52
    {
53 3
        $this->orphanedRecordIds = $orphanedRecordIds;
54 3
        return $this;
55
    }
56
57 2
    public function addOrphanedRecordId(int $orphanedRecordId): self
58
    {
59 2
        $this->orphanedRecordIds[] = $orphanedRecordId;
60 2
        return $this;
61
    }
62
63
    /**
64
     * @return array
65
     */
66 3
    public function getMissingReferenceCounts(): array
67
    {
68 3
        return $this->missingReferenceCounts;
69
    }
70
71
    /**
72
     * @param array $missingReferenceCounts
73
     * @return $this
74
     */
75 7
    public function setMissingReferenceCounts(array $missingReferenceCounts): self
76
    {
77 7
        $this->missingReferenceCounts = $missingReferenceCounts;
78 7
        return $this;
79
    }
80
81 2
    public function addMissingReferenceCount(int $id, int $count): self
82
    {
83 2
        $this->missingReferenceCounts[$id] = $count;
84 2
        return $this;
85
    }
86
87
    /**
88
     * @return array
89
     */
90 3
    public function getInvalidReferenceCounts(): array
91
    {
92 3
        return $this->invalidReferenceCounts;
93
    }
94
95
    /**
96
     * @param array $invalidReferenceCounts
97
     * @return $this
98
     */
99 3
    public function setInvalidReferenceCounts(array $invalidReferenceCounts): self
100
    {
101 3
        $this->invalidReferenceCounts = $invalidReferenceCounts;
102 3
        return $this;
103
    }
104
105 2
    public function addInvalidReferenceCount(int $id, int $number): self
106
    {
107 2
        $this->invalidReferenceCounts[$id] = $number;
108 2
        return $this;
109
    }
110
111 3
    public function includeFrom(InconsistenciesResult $result): void
112
    {
113 3
        $this->setMissingReferenceCounts(
114 3
            $this->missingReferenceCounts
115 3
            + $result->getMissingReferenceCounts()
116
        );
117 3
        $this->setInvalidReferenceCounts(
118 3
            $this->invalidReferenceCounts
119 3
            + $result->getInvalidReferenceCounts()
120
        );
121 3
        $this->setOrphanedRecordIds(
122 3
            array_merge($this->orphanedRecordIds, $result->getOrphanedRecordIds())
123
        );
124 3
    }
125
}
126