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

InfoBuilder   A

Complexity

Total Complexity 15

Size/Duplication

Total Lines 101
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 15
lcom 1
cbo 4
dl 0
loc 101
ccs 39
cts 39
cp 1
rs 10
c 0
b 0
f 0

13 Methods

Rating   Name   Duplication   Size   Complexity  
A createInfo() 0 12 3
A setContact() 0 6 1
A setDescription() 0 6 1
A setLicense() 0 6 1
A setTermsOfService() 0 6 1
A setTitle() 0 6 1
A setVersion() 0 6 1
A getContact() 0 4 1
A getDescription() 0 4 1
A getLicense() 0 4 1
A getTermsOfService() 0 4 1
A getTitle() 0 4 1
A getVersion() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Aweapi\Openapi\Builders;
6
7
use Aweapi\Openapi\Objects;
8
9
final class InfoBuilder implements Objects\InfoFactory
10
{
11
    use Properties\OptionalExtensions;
12
13
    private $contact;
14
15
    private $description;
16
17
    private $license;
18
19
    private $termsOfService;
20
21
    private $title;
22
23
    private $version;
24
25 4
    public function createInfo(): Objects\Info
26
    {
27 4
        return new Objects\Info(
28 4
            $this->getTitle(),
29 4
            $this->getVersion(),
30 4
            $this->getDescription(),
31 4
            $this->getTermsOfService(),
32 4
            $this->getContact() ? $this->getContact()->createContact() : null,
33 4
            $this->getLicense() ? $this->getLicense()->createLicense() : null,
34 4
            $this->getExtensions()
35
        );
36
    }
37
38 1
    public function setContact(Objects\ContactFactory $contact): self
39
    {
40 1
        $this->contact = $contact;
41
42 1
        return $this;
43
    }
44
45 1
    public function setDescription(string $description): self
46
    {
47 1
        $this->description = $description;
48
49 1
        return $this;
50
    }
51
52 1
    public function setLicense(Objects\LicenseFactory $license): self
53
    {
54 1
        $this->license = $license;
55
56 1
        return $this;
57
    }
58
59 1
    public function setTermsOfService(string $termsOfService): self
60
    {
61 1
        $this->termsOfService = $termsOfService;
62
63 1
        return $this;
64
    }
65
66 4
    public function setTitle(string $title): self
67
    {
68 4
        $this->title = $title;
69
70 4
        return $this;
71
    }
72
73 4
    public function setVersion(string $version): self
74
    {
75 4
        $this->version = $version;
76
77 4
        return $this;
78
    }
79
80 4
    private function getContact(): ?Objects\ContactFactory
81
    {
82 4
        return $this->contact;
83
    }
84
85 4
    private function getDescription(): ?string
86
    {
87 4
        return $this->description;
88
    }
89
90 4
    private function getLicense(): ?Objects\LicenseFactory
91
    {
92 4
        return $this->license;
93
    }
94
95 4
    private function getTermsOfService(): ?string
96
    {
97 4
        return $this->termsOfService;
98
    }
99
100 4
    private function getTitle(): string
101
    {
102 4
        return $this->title;
103
    }
104
105 4
    private function getVersion(): string
106
    {
107 4
        return $this->version;
108
    }
109
}
110