-
Notifications
You must be signed in to change notification settings - Fork 51
/
Copy pathCommandGroup.php
82 lines (66 loc) · 1.33 KB
/
CommandGroup.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
namespace CLIFramework;
use CLIFramework\Command;
use CLIFramework\CommandBase;
class CommandGroup
{
public $id;
public $name;
public $desc;
public $commands = array();
public $isHidden = false;
public function __construct($groupName, $commands = array())
{
$this->name = $groupName;
$this->commands = $commands;
}
public function setId($id)
{
$this->id = $id;
return $this;
}
public function getId()
{
return $this->id ?: $this->getName();
}
public function getName()
{
return $this->name;
}
public function addCommand($name, CommandBase $command)
{
$this->commands[$name] = $command;
return $this;
}
public function getCommands()
{
return $this->commands;
}
public function getCommandNames()
{
return array_keys($this->commands);
}
/**
* Set group description
*
* @param string $desc
* @return CommandGroup
*/
public function setDesc($desc)
{
$this->desc = $desc;
return $this;
}
/**
* Get the group description
*/
public function getDesc()
{
return $this->desc;
}
public function hidden()
{
$this->isHidden = true;
return $this;
}
}