Passed
Pull Request — master (#34)
by Anatoly
02:04
created

Server   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 8
c 1
b 0
f 0
dl 0
loc 51
ccs 9
cts 9
cp 1
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 4
    public function __construct(string $url)
47
    {
48 4
        $this->url = $url;
49 4
    }
50
51
    /**
52
     * @param string $description
53
     *
54
     * @return void
55
     */
56 1
    public function setDescription(string $description) : void
57
    {
58 1
        $this->description = $description;
59 1
    }
60
61
    /**
62
     * @param ServerVariable ...$variables
63
     *
64
     * @return void
65
     */
66 1
    public function addVariable(ServerVariable ...$variables) : void
67
    {
68 1
        foreach ($variables as $variable) {
69 1
            $this->variables[$variable->getName()] = $variable;
70
        }
71 1
    }
72
}
73