ClassHierarchyMetadata::isFresh()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
cc 3
eloc 4
nc 3
nop 1
dl 0
loc 9
ccs 0
cts 5
cp 0
crap 12
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Metadata;
6
7
/**
8
 * Represents the metadata for the entire class hierarchy.
9
 *
10
 * @author Johannes M. Schmitt <[email protected]>
11
 */
12
class ClassHierarchyMetadata
13
{
14
    /**
15
     * @var ClassMetadata[]
16
     */
17
    public $classMetadata = [];
18
19 2
    public function addClassMetadata(ClassMetadata $metadata): void
20
    {
21 2
        $this->classMetadata[$metadata->name] = $metadata;
22 2
    }
23
24
    public function getRootClassMetadata(): ?ClassMetadata
25
    {
26
        return reset($this->classMetadata);
27
    }
28
29
    public function getOutsideClassMetadata(): ?ClassMetadata
30
    {
31
        return end($this->classMetadata);
32
    }
33
34
    public function isFresh(int $timestamp): bool
35
    {
36
        foreach ($this->classMetadata as $metadata) {
37
            if (!$metadata->isFresh($timestamp)) {
38
                return false;
39
            }
40
        }
41
42
        return true;
43
    }
44
}
45