Passed
Branch release/v2.0.0 (f3d8ba)
by Anatoly
03:59
created

Server   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 8
c 1
b 0
f 0
dl 0
loc 51
ccs 0
cts 12
cp 0
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A setDescription() 0 3 1
A addVariable() 0 4 2
1
<?php declare(strict_types=1);
2
3
/**
4
 * It's free open-source software released under the MIT License.
5
 *
6
 * @author Anatoly Fenric <[email protected]>
7
 * @copyright Copyright (c) 2018, Anatoly Fenric
8
 * @license https://github.com/sunrise-php/http-router/blob/master/LICENSE
9
 * @link https://github.com/sunrise-php/http-router
10
 */
11
12
namespace Sunrise\Http\Router\OpenApi;
13
14
/**
15
 * OAS Server Object
16
 *
17
 * @link https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#server-object
18
 */
19
class Server extends AbstractObject
20
{
21
22
    /**
23
     * @var string
24
     *
25
     * @link https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#user-content-serverurl
26
     */
27
    protected $url;
28
29
    /**
30
     * @var string
31
     *
32
     * @link https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#user-content-serverdescription
33
     */
34
    protected $description;
35
36
    /**
37
     * @var ServerVariable[]
38
     *
39
     * @link https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#user-content-servervariables
40
     */
41
    protected $variables = [];
42
43
    /**
44
     * @param string $url
45
     */
46
    public function __construct(string $url)
47
    {
48
        $this->url = $url;
49
    }
50
51
    /**
52
     * @param string $description
53
     *
54
     * @return void
55
     */
56
    public function setDescription(string $description) : void
57
    {
58
        $this->description = $description;
59
    }
60
61
    /**
62
     * @param ServerVariable ...$variables
63
     *
64
     * @return void
65
     */
66
    public function addVariable(ServerVariable ...$variables) : void
67
    {
68
        foreach ($variables as $variable) {
69
            $this->variables[$variable->getName()] = $variable;
70
        }
71
    }
72
}
73