Passed
Push — master ( ff83e3...5f4a5c )
by Ehsan
03:54
created

Command   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 110
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 13
lcom 2
cbo 0
dl 0
loc 110
ccs 33
cts 33
cp 1
rs 10
c 0
b 0
f 0

11 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getKey() 0 4 1
A setKey() 0 4 1
A getPlugin() 0 4 1
A setPlugin() 0 4 1
A getDescription() 0 4 1
A setDescription() 0 4 1
A getAction() 0 8 2
A setAction() 0 4 1
A getClass() 0 9 2
A setClass() 0 4 1
1
<?php
2
3
namespace Botonomous;
4
5
/**
6
 * Class Command.
7
 */
8
class Command
9
{
10
    const DEFAULT_ACTION = 'index';
11
    const PLUGIN_DIR = 'plugin';
12
13
    private $key;
14
    private $plugin;
15
    private $description;
16
    private $action;
17
    private $class;
18
19
    /**
20
     * Command constructor.
21
     *
22
     * @param $key
23
     */
24 11
    public function __construct($key)
25
    {
26 11
        $this->setKey($key);
27 11
    }
28
29
    /**
30
     * @return string
31
     */
32 1
    public function getKey()
33
    {
34 1
        return $this->key;
35
    }
36
37
    /**
38
     * @param string $key
39
     */
40 11
    public function setKey($key)
41
    {
42 11
        $this->key = $key;
43 11
    }
44
45
    /**
46
     * @return string
47
     */
48 7
    public function getPlugin()
49
    {
50 7
        return $this->plugin;
51
    }
52
53
    /**
54
     * @param string $plugin
55
     */
56 9
    public function setPlugin($plugin)
57
    {
58 9
        $this->plugin = $plugin;
59 9
    }
60
61
    /**
62
     * @return string
63
     */
64 1
    public function getDescription()
65
    {
66 1
        return $this->description;
67
    }
68
69
    /**
70
     * @param string $description
71
     */
72 9
    public function setDescription($description)
73
    {
74 9
        $this->description = $description;
75 9
    }
76
77
    /**
78
     * @return string
79
     */
80 5
    public function getAction()
81
    {
82 5
        if (empty($this->action)) {
83 4
            $this->setAction(self::DEFAULT_ACTION);
84
        }
85
86 5
        return $this->action;
87
    }
88
89
    /**
90
     * @param string $action
91
     */
92 8
    public function setAction($action)
93
    {
94 8
        $this->action = $action;
95 8
    }
96
97
    /**
98
     * @return string
99
     */
100 3
    public function getClass()
101
    {
102 3
        if (empty($this->class)) {
103 3
            $class = __NAMESPACE__.'\\'.self::PLUGIN_DIR.'\\'.strtolower($this->getPlugin()).'\\'.$this->getPlugin();
104 3
            $this->setClass($class);
105
        }
106
107 3
        return $this->class;
108
    }
109
110
    /**
111
     * @param string $class
112
     */
113 3
    public function setClass($class)
114
    {
115 3
        $this->class = $class;
116 3
    }
117
}
118