Completed
Push — master ( 5b5cdc...a6b764 )
by Sam
02:28
created

Input   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 4
c 2
b 0
f 0
lcom 1
cbo 1
dl 0
loc 56
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setFromInputStatus() 0 9 1
A parseMux() 0 6 1
A parseNetwork() 0 6 1
A getStreamParts() 0 4 1
1
<?php
2
3
namespace Jalle19\StatusManager\Database;
4
5
use Jalle19\StatusManager\Database\Base\Input as BaseInput;
6
use Jalle19\tvheadend\model\InputStatus;
7
8
/**
9
 * @package   Jalle19\StatusManager\Database
10
 * @copyright Copyright &copy; Sam Stenvall 2015-
11
 * @license   https://www.gnu.org/licenses/gpl.html The GNU General Public License v2.0
12
 */
13
class Input extends BaseInput
14
{
15
16
	/**
17
	 * @param InputStatus $inputStatus
18
	 *
19
	 * @return $this|Input
20
	 */
21
	public function setFromInputStatus(InputStatus $inputStatus)
22
	{
23
		$this->setPrimaryKey($inputStatus->uuid);
24
25
		return $this->setInput($inputStatus->input)
26
		            ->setWeight($inputStatus->weight)
27
		            ->setNetwork(self::parseNetwork($inputStatus))
28
		            ->setMux(self::parseMux($inputStatus));
29
	}
30
31
32
	/**
33
	 * @param InputStatus $inputStatus
34
	 *
35
	 * @return string
36
	 */
37
	private static function parseMux(InputStatus $inputStatus)
38
	{
39
		$parts = self::getStreamParts($inputStatus);
40
41
		return $parts[0];
42
	}
43
44
45
	/**
46
	 * @param InputStatus $inputStatus
47
	 *
48
	 * @return string
49
	 */
50
	private static function parseNetwork(InputStatus $inputStatus)
51
	{
52
		$parts = self::getStreamParts($inputStatus);
53
54
		return $parts[1];
55
	}
56
57
58
	/**
59
	 * @param InputStatus $inputStatus
60
	 *
61
	 * @return array
62
	 */
63
	private static function getStreamParts(InputStatus $inputStatus)
64
	{
65
		return explode(' in ', $inputStatus->stream);
66
	}
67
68
}
69