ClassHierarchyMetadata   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Test Coverage

Coverage 25%

Importance

Changes 0
Metric Value
eloc 9
dl 0
loc 31
ccs 3
cts 12
cp 0.25
rs 10
c 0
b 0
f 0
wmc 6

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getRootClassMetadata() 0 3 1
A isFresh() 0 9 3
A addClassMetadata() 0 3 1
A getOutsideClassMetadata() 0 3 1
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