AstDirectivesTrait   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 27.27%

Importance

Changes 0
Metric Value
wmc 8
lcom 1
cbo 1
dl 0
loc 60
ccs 6
cts 22
cp 0.2727
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A hasDirectives() 0 4 1
A hasDirective() 0 4 1
A getDirectives() 0 4 1
A addDirective() 0 4 1
A getDirective() 0 9 2
A setDirectives() 0 9 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 100
    public function setDirectives(array $directives)
57
    {
58 100
        $this->directives      = [];
59 100
        $this->directivesCache = null;
60
61 100
        foreach ($directives as $directive) {
62
            $this->addDirective($directive);
63 100
        }
64 100
    }
65
66
    public function addDirective(Directive $directive)
67
    {
68
        $this->directives[$directive->getName()] = $directive;
69
    }
70
}
71