Passed
Pull Request — master (#29)
by Christoffer
02:26
created

SupportedBuilders::get()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 11
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 5
nc 2
nop 0
dl 0
loc 11
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Digia\GraphQL\Language\AST\Builder;
4
5
class SupportedBuilders
6
{
7
    /**
8
     * @var BuilderInterface[]
9
     */
10
    private static $builders;
11
12
    /**
13
     * @var array
14
     */
15
    private static $supportedBuilders = [
16
        ArgumentBuilder::class,
17
        BooleanBuilder::class,
18
        DirectiveBuilder::class,
19
        DocumentBuilder::class,
20
        EnumBuilder::class,
21
        FieldBuilder::class,
22
        FloatBuilder::class,
23
        FragmentDefinitionBuilder::class,
24
        FragmentSpreadBuilder::class,
25
        InlineFragmentBuilder::class,
26
        IntBuilder::class,
27
        ListBuilder::class,
28
        ListTypeBuilder::class,
29
        NameBuilder::class,
30
        NamedTypeBuilder::class,
31
        NonNullTypeBuilder::class,
32
        NullBuilder::class,
33
        ObjectBuilder::class,
34
        ObjectFieldBuilder::class,
35
        OperationDefinitionBuilder::class,
36
        SelectionSetBuilder::class,
37
        StringBuilder::class,
38
        VariableBuilder::class,
39
        VariableDefinitionBuilder::class,
40
        // Schema Definition Language (SDL)
41
        SchemaDefinitionBuilder::class,
42
        OperationTypeDefinitionBuilder::class,
43
        FieldDefinitionBuilder::class,
44
        ScalarTypeDefinitionBuilder::class,
45
        ObjectTypeDefinitionBuilder::class,
46
        InterfaceTypeDefinitionBuilder::class,
47
        UnionTypeDefinitionBuilder::class,
48
        EnumTypeDefinitionBuilder::class,
49
        EnumValueDefinitionBuilder::class,
50
        InputObjectTypeDefinitionBuilder::class,
51
        InputValueDefinitionBuilder::class,
52
        ScalarTypeExtensionBuilder::class,
53
        ObjectTypeExtensionBuilder::class,
54
        InterfaceTypeExtensionBuilder::class,
55
        EnumTypeExtensionBuilder::class,
56
        UnionTypeExtensionBuilder::class,
57
        InputObjectTypeExtensionBuilder::class,
58
        DirectiveDefinitionBuilder::class,
59
    ];
60
61
    /**
62
     * @return array
63
     */
64
    public static function get(): array
65
    {
66
        if (null === self::$builders) {
0 ignored issues
show
introduced by
The condition null === self::builders can never be true.
Loading history...
67
            self::$builders = [];
68
69
            foreach (self::$supportedBuilders as $className) {
70
                self::$builders[] = new $className();
71
            }
72
        }
73
74
        return self::$builders;
75
    }
76
}
77