Completed
Pull Request — master (#6)
by Veaceslav
11:19
created

OptionalExtensions   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 1
dl 0
loc 36
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
    public function addExtensions(iterable $extensions): self
14
    {
15
        foreach ($extensions as $name => $value) {
16
            $this->setExtension($name, $value);
17
        }
18
19
        return $this;
20
    }
21
22
    public function clearExtensions(): self
23
    {
24
        $this->extensions = [];
25
26
        return $this;
27
    }
28
29
    public function setExtension(string $name, $value): self
30
    {
31
        $this->extensions[$name] = $value;
32
33
        return $this;
34
    }
35
36
    private function getExtensions(): ?Extensions
37
    {
38
        if (empty($this->extensions)) {
39
            return null;
40
        }
41
42
        return new Extensions($this->extensions);
43
    }
44
}
45