Completed
Push — master ( 911cdf...67ba27 )
by Alexandr
02:54
created

AstDirectivesTrait::setDirectives()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 2.0116

Importance

Changes 0
Metric Value
dl 0
loc 9
ccs 6
cts 7
cp 0.8571
rs 9.6666
c 0
b 0
f 0
cc 2
eloc 5
nc 2
nop 1
crap 2.0116
1
<?php
2
/**
3
 * Date: 3/17/17
4
 *
5
 * @author Volodymyr Rashchepkin <[email protected]>
6
 */
7
8
namespace Youshido\GraphQL\Parser\Ast;
9
10
11
trait AstDirectivesTrait
12
{
13
14
    /** @var Directive[] */
15
    protected $directives;
16
17
    private $directivesCache = null;
18
19
20
    public function hasDirectives()
21
    {
22
        return (bool)count($this->directives);
23
    }
24
25
    public function hasDirective($name)
26
    {
27
        return array_key_exists($name, $this->directives);
28
    }
29
30
    /**
31
     * @param $name
32
     *
33
     * @return null|Directive
34
     */
35
    public function getDirective($name)
36
    {
37
        $directive = null;
38
        if (isset($this->directives[$name])) {
39
            $directive = $this->directives[$name];
40
        }
41
42
        return $directive;
43
    }
44
45
    /**
46
     * @return Directive[]
47
     */
48
    public function getDirectives()
49
    {
50
        return $this->directives;
51
    }
52
53
    /**
54
     * @param $directives Directive[]
55
     */
56 95
    public function setDirectives(array $directives)
57
    {
58 95
        $this->directives      = [];
59 95
        $this->directivesCache = null;
60
61 95
        foreach ($directives as $directive) {
62
            $this->addDirective($directive);
63 95
        }
64 95
    }
65
66
    public function addDirective(Directive $directive)
67
    {
68
        $this->directives[$directive->getName()] = $directive;
69
    }
70
}
71