Passed
Push — develop ( 7fbd2c...82694f )
by nguereza
02:49
created

Device::__toString()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 5
c 0
b 0
f 0
dl 0
loc 7
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
/**
4
 * Platine User Agent
5
 *
6
 * Platine User Agent is a lightweight library for detecting
7
 * user browser, device, OS, CPU
8
 *
9
 * This content is released under the MIT License (MIT)
10
 *
11
 * Copyright (c) 2020 Platine User Agent
12
 *
13
 * Permission is hereby granted, free of charge, to any person obtaining a copy
14
 * of this software and associated documentation files (the "Software"), to deal
15
 * in the Software without restriction, including without limitation the rights
16
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
 * copies of the Software, and to permit persons to whom the Software is
18
 * furnished to do so, subject to the following conditions:
19
 *
20
 * The above copyright notice and this permission notice shall be included in all
21
 * copies or substantial portions of the Software.
22
 *
23
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
 * SOFTWARE.
30
 */
31
32
/**
33
 *  @file Device.php
34
 *
35
 *  The device entity class
36
 *
37
 *  @package    Platine\UserAgent\Entity
38
 *  @author Platine Developers Team
39
 *  @copyright  Copyright (c) 2020
40
 *  @license    http://opensource.org/licenses/MIT  MIT License
41
 *  @link   http://www.iacademy.cf
42
 *  @version 1.0.0
43
 *  @filesource
44
 */
45
46
declare(strict_types=1);
47
48
namespace Platine\UserAgent\Entity;
49
50
/**
51
 * Class Device
52
 * @package Platine\UserAgent\Entity
53
 */
54
class Device extends AbstractEntity
55
{
56
57
    /**
58
     * The device model
59
     * @var string
60
     */
61
    protected string $model = '';
62
63
    /**
64
     * The device vendor
65
     * @var string
66
     */
67
    protected string $vendor = '';
68
69
    /**
70
     * The type of device
71
     * @var string
72
     */
73
    protected string $type = '';
74
75
    /**
76
     * Return the model of device
77
     * @return string
78
     */
79
    public function getModel(): string
80
    {
81
        return $this->model;
82
    }
83
84
    /**
85
     * Return the device vendor
86
     * @return string
87
     */
88
    public function getVendor(): string
89
    {
90
        return $this->vendor;
91
    }
92
93
    /**
94
     * Return the type of device
95
     * @return string
96
     */
97
    public function getType(): string
98
    {
99
        return $this->type;
100
    }
101
102
    /**
103
     * Set the device model
104
     * @param string $model
105
     * @return $this
106
     */
107
    public function setModel(string $model): self
108
    {
109
        $this->model = $model;
110
111
        return $this;
112
    }
113
114
    /**
115
     * Set the device vendor
116
     * @param string $vendor
117
     * @return $this
118
     */
119
    public function setVendor(string $vendor): self
120
    {
121
        $this->vendor = $vendor;
122
123
        return $this;
124
    }
125
126
    /**
127
     * Set the device type
128
     * @param string $type
129
     * @return $this
130
     */
131
    public function setType(string $type): self
132
    {
133
        $this->type = $type;
134
135
        return $this;
136
    }
137
138
    /**
139
     * The string representation
140
     * @return string
141
     */
142
    public function __toString(): string
143
    {
144
        return sprintf(
145
            '%s, %s %s',
146
            $this->model,
147
            $this->vendor,
148
            $this->type
149
        );
150
    }
151
}
152