Completed
Push — master ( 364c70...6a53a2 )
by Sam
03:01
created

ZoneTrait::setName()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
ccs 3
cts 3
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php
2
3
/*
4
 * This file is part of Badcow DNS Library.
5
 *
6
 * (c) Samuel Williams <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Badcow\DNS;
13
14
trait ZoneTrait
15
{
16
    /**
17
     * @var string
18
     */
19
    private $name;
20
21
    /**
22
     * @var ResourceRecord[]
23
     */
24
    private $resourceRecords = array();
25
26
    /**
27
     * @var int
28
     */
29
    private $defaultTtl;
30
31
    /**
32
     * @var array
33
     */
34
    private $ctrlEntries = [];
35
36
    /**
37
     * @param ResourceRecordInterface[] $resourceRecord
38
     */
39 21
    public function setResourceRecords(array $resourceRecord)
40
    {
41 21
        foreach ($resourceRecord as $rr) {
42
            /* @var ResourceRecordInterface $rr */
43 15
            $this->addResourceRecord($rr);
44 21
        }
45 21
    }
46
47
    /**
48
     * @param ResourceRecordInterface $resourceRecord
49
     */
50 18
    public function addResourceRecord(ResourceRecordInterface $resourceRecord)
51
    {
52 18
        $this->resourceRecords[] = $resourceRecord;
53 18
    }
54
55
    /**
56
     * @return ResourceRecordInterface[]
57
     */
58 18
    public function getResourceRecords()
59
    {
60 18
        return $this->resourceRecords;
61
    }
62
63
    /**
64
     * @param int $defaultTtl
65
     */
66 24
    public function setDefaultTtl($defaultTtl)
67
    {
68 24
        $this->defaultTtl = (int) $defaultTtl;
69 24
    }
70
71
    /**
72
     * @return int
73
     */
74 9
    public function getDefaultTtl()
75
    {
76 9
        return $this->defaultTtl;
77
    }
78
79
    /**
80
     * @param string $name A fully qualified zone name
81
     *
82
     * @throws ZoneException
83
     */
84 3
    public function setName($name)
85
    {
86 3
        $this->name = $name;
87 3
    }
88
89
    /**
90
     * @return string
91
     */
92 12
    public function getName()
93
    {
94 12
        return $this->name;
95
    }
96
97
    /**
98
     * @param string $name
99
     * @param string $value
100
     */
101 3
    public function addControlEntry($name, $value)
102
    {
103 3
        $this->ctrlEntries[] = ['name' => $name, 'value' => $value];
104 3
    }
105
106
    /**
107
     * @param string $name
108
     *
109
     * @return array
110
     */
111 3
    public function getControlEntry($name)
112
    {
113 3
        $out = [];
114 3
        foreach ($this->ctrlEntries as $entry) {
115 3
            if ($name === $entry['name']) {
116 3
                $out[] = $entry['value'];
117 3
            }
118 3
        }
119
120 3
        return $out;
121
    }
122
123
    /**
124
     * @return array
125
     */
126 3
    public function getControlEntries()
127
    {
128 3
        return $this->ctrlEntries;
129
    }
130
}
131