Passed
Pull Request — master (#160)
by Christoffer
02:31
created

ResolverMapRegistry::lookup()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 2
1
<?php
2
3
namespace Digia\GraphQL\SchemaBuilder;
4
5
class ResolverMapRegistry implements ResolverRegistryInterface
6
{
7
    /**
8
     * @var array
9
     */
10
    protected $resolverMap;
11
12
    /**
13
     * ResolverMapRegistry constructor.
14
     * @param array $resolverMap
15
     */
16
    public function __construct(array $resolverMap = [])
17
    {
18
        $this->resolverMap = $resolverMap;
19
    }
20
21
    /**
22
     * @param string   $typeName
23
     * @param string   $fieldName
24
     * @param callable $resolver
25
     */
26
    public function register(string $typeName, string $fieldName, callable $resolver): void
27
    {
28
        if (!isset($this->resolverMap[$typeName])) {
29
            $this->resolverMap[$typeName] = [];
30
        }
31
32
        $this->resolverMap[$typeName][$fieldName] = $resolver;
33
    }
34
35
    /**
36
     * @param string $typeName
37
     * @param string $fieldName
38
     * @return callable
39
     */
40
    public function lookup(string $typeName, string $fieldName): ?callable
41
    {
42
        $resolverMap = $this->resolverMap[$typeName] ?? [];
43
        return $resolverMap[$fieldName] ?? null;
44
    }
45
}
46