Completed
Push — master ( 00d376...cc54a0 )
by Veaceslav
01:15
created

OptionalExtensions   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 78.56%

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 1
dl 0
loc 39
ccs 11
cts 14
cp 0.7856
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A addExtensions() 0 8 2
A clearExtensions() 0 6 1
A setExtension() 0 6 1
A getExtensions() 0 8 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Aweapi\Openapi\Builders\Properties;
6
7
use Aweapi\Openapi\Extensions;
8
9
trait OptionalExtensions
10
{
11
    private $extensions = [];
12
13 23
    public function addExtensions(iterable $extensions): self
14
    {
15 23
        foreach ($extensions as $name => $value) {
16 23
            $this->setExtension($name, $value);
17
        }
18
19 23
        return $this;
20
    }
21
22
    public function clearExtensions(): self
23
    {
24
        $this->extensions = [];
25
26
        return $this;
27
    }
28
29
    /**
30
     * @param mixed $value
31
     */
32 23
    public function setExtension(string $name, $value): self
33
    {
34 23
        $this->extensions[$name] = $value;
35
36 23
        return $this;
37
    }
38
39 66
    private function getExtensions(): ?Extensions
40
    {
41 66
        if (empty($this->extensions)) {
42 59
            return null;
43
        }
44
45 23
        return new Extensions($this->extensions);
46
    }
47
}
48