Completed
Push — master ( 035d35...799922 )
by Sam
03:35
created

StatisticsRequest   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 90.91%

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 6
lcom 0
cbo 3
dl 0
loc 57
ccs 10
cts 11
cp 0.9091
rs 10
c 2
b 0
f 1

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getInstanceName() 0 4 1
A __construct() 0 15 4
A getTimeFrame() 0 4 1
1
<?php
2
3
namespace Jalle19\StatusManager\Message\Request;
4
5
use Jalle19\StatusManager\Exception\MalformedRequestException;
6
use Jalle19\StatusManager\Message\AbstractMessage;
7
use Jalle19\StatusManager\TimeFrame;
8
9
/**
10
 * Base class for all requests for statistics
11
 *
12
 * @package   Jalle19\StatusManager\Message\Request
13
 * @copyright Copyright &copy; Sam Stenvall 2016-
14
 * @license   https://www.gnu.org/licenses/gpl.html The GNU General Public License v2.0
15
 */
16
abstract class StatisticsRequest extends AbstractMessage
17
{
18
19
	/**
20
	 * @var string
21
	 */
22
	private $_instanceName;
23
24
	/**
25
	 * @var TimeFrame
26
	 */
27
	private $_timeFrame;
28
29
30
	/**
31
	 * StatisticsRequest constructor.
32
	 *
33
	 * @param string    $type
34
	 * @param \stdClass $parameters
35
	 *
36
	 * @throws MalformedRequestException
37
	 */
38 2
	public function __construct($type, $parameters)
39
	{
40 2
		parent::__construct($type, $parameters);
41
42
		/* @var \stdClass $parameters */
43 2
		if (!isset($parameters->instanceName) || empty($parameters->instanceName))
44 1
			throw new MalformedRequestException('Missing mandatory "instanceName" parameter');
45
46 1
		$this->_instanceName = $parameters->instanceName;
47
48 1
		if (isset($parameters->timeFrame))
49 1
			$this->_timeFrame = new TimeFrame($parameters->timeFrame);
50
		else
51
			$this->_timeFrame = new TimeFrame(TimeFrame::TIME_FRAME_ALL_TIME);
52 1
	}
53
54
55
	/**
56
	 * @return string
57
	 */
58
	public function getInstanceName()
59
	{
60
		return $this->_instanceName;
61
	}
62
63
64
	/**
65
	 * @return TimeFrame
66
	 */
67 1
	public function getTimeFrame()
68
	{
69 1
		return $this->_timeFrame;
70
	}
71
72
}
73