Test Failed
Push — master ( a5a28b...999969 )
by Marcin
02:51
created

Styles::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 2
1
<?php
2
/**
3
 * Grandstream-XMLApp
4
 *
5
 * Copyright (c) 2017 pudelek.org.pl
6
 *
7
 * @license MIT License (MIT)
8
 *
9
 * For the full copyright and license information, please view source file
10
 * that is bundled with this package in the file LICENSE
11
 *
12
 * @author  Marcin Pudełek <[email protected]>
13
 */
14
15
namespace mrcnpdlk\Grandstream\XMLApp\Application\Model;
16
17
18
use mrcnpdlk\Grandstream\XMLApp\Helper\Color;
19
use mrcnpdlk\Grandstream\XMLApp\Helper\Point;
20
use mrcnpdlk\Grandstream\XMLApp\MyXML;
21
22
class Styles implements ModelInterface
23
{
24
    /**
25
     * @var Point
26
     */
27
    private $oPoint;
28
    /**
29
     * @var integer
30
     */
31
    private $iWidth;
32
    /**
33
     * @var Color
34
     */
35
    private $oColorBg;
36
    /**
37
     * @var Color
38
     */
39
    private $oColorBorder;
40
41
    /**
42
     * Styles constructor.
43
     *
44
     * @param \mrcnpdlk\Grandstream\XMLApp\Helper\Point $oPoint
45
     * @param int                                       $iWidth
46
     */
47
    public function __construct(Point $oPoint, int $iWidth)
48
    {
49
        $this->oPoint = $oPoint;
50
        $this->iWidth = $iWidth;
51
    }
52
53
    /**
54
     * @param Color $oColor
55
     *
56
     * @return \mrcnpdlk\Grandstream\XMLApp\Application\Model\Styles
57
     */
58
    public function setColorBg(Color $oColor)
59
    {
60
        $this->oColorBg = $oColor;
61
62
        return $this;
63
    }
64
65
    /**
66
     * @param Color $oColor
67
     *
68
     * @return $this
69
     */
70
    public function setColorBorder(Color $oColor)
71
    {
72
        $this->oColorBorder = $oColor;
73
74
        return $this;
75
    }
76
77
    public function getXml(): MyXML
78
    {
79
        $oXml = new MyXML('styles');
80
        $oXml->asObject()->addAttribute('pos_x', $this->oPoint->getX());
81
        $oXml->asObject()->addAttribute('pos_y', $this->oPoint->getY());
82
        $oXml->setWidth($this->iWidth);
83
        $oXml->setColorBg($this->getColorBg()->get());
84
        $oXml->setColorBorder($this->getColorBorder()->get());
85
86
        return $oXml;
87
    }
88
89
    /**
90
     * @return \mrcnpdlk\Grandstream\XMLApp\Helper\Color
91
     */
92
    public function getColorBg()
93
    {
94
        return $this->oColorBg ?? new Color(20);
95
    }
96
97
    /**
98
     * @return \mrcnpdlk\Grandstream\XMLApp\Helper\Color
99
     */
100
    public function getColorBorder()
101
    {
102
        return $this->oColorBorder ?? new Color(100);
103
    }
104
}