Completed
Push — master ( f217d3...d27e26 )
by Sam
02:23
created

AbstractSection::getParameterByName()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 10
rs 9.4285
cc 3
eloc 5
nc 3
nop 1
1
<?php
2
3
namespace Jalle19\HaPHProxy\Section;
4
5
use Jalle19\HaPHProxy\Parameter\Parameter;
6
7
/**
8
 * Class AbstractSection
9
 * @package Jalle19\HaPHProxy\Section
10
 * @author  Sam Stenvall <[email protected]>
11
 * @license GNU General Public License 2.0+
12
 */
13
abstract class AbstractSection
14
{
15
16
	/**
17
	 * @var Parameter[]
18
	 */
19
	protected $parameters = [];
20
21
22
	/**
23
	 * @return string the type of section
24
	 */
25
	abstract public function getType();
26
27
28
	/**
29
	 * @param Parameter $parameter
30
	 *
31
	 * @return $this
32
	 */
33
	public function addParameter(Parameter $parameter)
34
	{
35
		$this->parameters[] = $parameter;
36
37
		return $this;
38
	}
39
40
41
	/**
42
	 * @param string $name
43
	 *
44
	 * @return bool whether the specified parameter exists
45
	 */
46
	public function hasParameter($name)
47
	{
48
		return $this->getParameterByName($name) !== null;
49
	}
50
51
52
	/**
53
	 * @param string $name
54
	 *
55
	 * @return Parameter|null the parameter matching the specified name, or null if not found
56
	 */
57
	public function getParameterByName($name)
58
	{
59
		foreach ($this->parameters as $parameter) {
60
			if ($parameter->getName() === $name) {
61
				return $parameter;
62
			}
63
		}
64
65
		return null;
66
	}
67
68
69
	/**
70
	 * @return Parameter[]
71
	 */
72
	public function getParameters()
73
	{
74
		return $this->parameters;
75
	}
76
77
78
	/**
79
	 * @param string $name
80
	 *
81
	 * @return Parameter[] all parameters matching the specified nameF
82
	 */
83
	public function getParametersByName($name)
84
	{
85
		$parameters = [];
86
87
		foreach ($this->parameters as $parameter) {
88
			if ($parameter->getName() === $name) {
89
				$parameters[] = $parameter;
90
			}
91
		}
92
93
		return $parameters;
94
	}
95
96
}
97