Completed
Push — master ( e6cea0...5c122a )
by Marcin
01:53
created

SoftKey::setCommandArgs()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 0
cts 3
cp 0
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 1
crap 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
16
namespace mrcnpdlk\Grandstream\XMLApp\Application\Model;
17
18
use mrcnpdlk\Grandstream\XMLApp\Application\ModelConstant;
19
use mrcnpdlk\Grandstream\XMLApp\Application\ModelInterface;
20
use mrcnpdlk\Grandstream\XMLApp\MyXML;
21
22
/**
23
 * Class SoftKey
24
 *
25
 * @package mrcnpdlk\Grandstream\XMLApp\Application\Model
26
 */
27
class SoftKey implements ModelInterface
28
{
29
    /**
30
     * @var string
31
     */
32
    private $sAction;
33
    /**
34
     * Displays the softkey name
35
     *
36
     * @var string
37
     */
38
    private $sLabel;
39
    /**
40
     *
41
     * URL information, or number
42
     *
43
     * @var string
44
     */
45
    private $sCommandArgs;
46
    /**
47
     * Only for action=Dial.
48
     * This specifies the account index to dial out the call from, starting from 0 for account 1
49
     *
50
     * @var integer
51
     */
52
    private $iCommandId;
53
54
    /**
55
     * SoftKey constructor.
56
     *
57
     * @param string $sAction
58
     * @param string $sLabel
59
     */
60
    public function __construct(string $sAction, string $sLabel)
61
    {
62
        $this->sAction = $sAction;
63
        $this->sLabel  = $sLabel;
64
        $this->setCommandId();
65
    }
66
67
    /**
68
     * @param integer $iCommandId
69
     *
70
     * @return SoftKey
71
     */
72
    public function setCommandId(int $iCommandId = 0)
73
    {
74
        if ($this->sAction === ModelConstant::ACTION_DIAL) {
75
            $this->iCommandId = $iCommandId;
76
        }
77
78
        return $this;
79
    }
80
81
    /**
82
     * @param string $sCommandArgs
83
     *
84
     * @return SoftKey
85
     */
86
    public function setCommandArgs(string $sCommandArgs)
87
    {
88
        $this->sCommandArgs = $sCommandArgs;
89
90
        return $this;
91
    }
92
93
    /**
94
     * @return MyXML
95
     */
96
    public function getXml(): MyXML
97
    {
98
        $oXml = new MyXML('SoftKey');
99
        $oXml->asObject()->addAttribute('action', $this->sAction);
100
        $oXml->asObject()->addAttribute('label', $this->sLabel);
101
        if (!is_null($this->sCommandArgs)) {
102
            $oXml->asObject()->addAttribute('commandArgs', $this->getCommandArgs());
103
        }
104
105
        if (!is_null($this->getCommandId())) {
106
            $oXml->asObject()->addAttribute('commandId', $this->getCommandId());
107
        }
108
109
110
        return $oXml;
111
    }
112
113
    /**
114
     * @return string
115
     */
116
    public function getCommandArgs()
117
    {
118
        return $this->sCommandArgs;
119
    }
120
121
    /**
122
     * @return integer
123
     */
124
    public function getCommandId()
125
    {
126
        return $this->iCommandId;
127
    }
128
}
129