Passed
Push — master ( c47e08...96e565 )
by Quang
02:51
created

SupportedNodeBuilders   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 70
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
dl 0
loc 70
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A get() 0 11 3
1
<?php
2
3
namespace Digia\GraphQL\Language\NodeBuilder;
4
5
class SupportedNodeBuilders
6
{
7
    /**
8
     * @var NodeBuilderInterface[]
9
     */
10
    private static $builders;
11
12
    /**
13
     * @var array
14
     */
15
    private static $supportedBuilders = [
16
        ArgumentNodeBuilder::class,
17
        BooleanNodeBuilder::class,
18
        DirectiveNodeBuilder::class,
19
        DocumentNodeBuilder::class,
20
        EnumNodeBuilder::class,
21
        FieldNodeBuilder::class,
22
        FloatValueNodeBuilder::class,
23
        FragmentDefinitionNodeBuilder::class,
24
        FragmentSpreadNodeBuilder::class,
25
        InlineFragmentNodeBuilder::class,
26
        IntValueNodeBuilder::class,
27
        ListValueNodeBuilder::class,
28
        ListTypeNodeBuilder::class,
29
        NameNodeBuilder::class,
30
        NamedTypeNodeBuilder::class,
31
        NonNullTypeNodeBuilder::class,
32
        NullValueNodeBuilder::class,
33
        ObjectValueNodeBuilder::class,
34
        ObjectFieldNodeBuilder::class,
35
        OperationDefinitionNodeBuilder::class,
36
        SelectionSetNodeBuilder::class,
37
        StringValueNodeBuilder::class,
38
        VariableNodeBuilder::class,
39
        VariableDefinitionNodeBuilder::class,
40
        // Schema Definition Language (SDL)
41
        SchemaDefinitionNodeBuilder::class,
42
        OperationTypeDefinitionNodeBuilder::class,
43
        FieldDefinitionNodeBuilder::class,
44
        ScalarTypeDefinitionNodeBuilder::class,
45
        ObjectTypeDefinitionNodeBuilder::class,
46
        InterfaceTypeDefinitionNodeBuilder::class,
47
        UnionTypeDefinitionNodeBuilder::class,
48
        EnumTypeDefinitionNodeBuilder::class,
49
        EnumValueDefinitionNodeBuilder::class,
50
        InputObjectTypeDefinitionNodeBuilder::class,
51
        InputValueDefinitionNodeBuilder::class,
52
        ScalarTypeExtensionNodeBuilder::class,
53
        ObjectTypeExtensionNodeBuilder::class,
54
        InterfaceTypeExtensionNodeBuilder::class,
55
        EnumTypeExtensionNodeBuilder::class,
56
        UnionTypeExtensionNodeBuilder::class,
57
        InputObjectTypeExtensionNodeBuilder::class,
58
        DirectiveDefinitionNodeBuilder::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 is always false.
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