Completed
Push — master ( 121747...dcf58a )
by Alexandr
02:37
created

AstDirectivesTrait::hasDirective()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
crap 2
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 97
    public function setDirectives(array $directives)
57
    {
58 97
        $this->directives      = [];
59 97
        $this->directivesCache = null;
60
61 97
        foreach ($directives as $directive) {
62
            $this->addDirective($directive);
63
        }
64 97
    }
65
66
    public function addDirective(Directive $directive)
67
    {
68
        $this->directives[$directive->getName()] = $directive;
69
    }
70
}
71