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

SupportedASTBuilders   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 66
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
dl 0
loc 66
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\ASTBuilder;
4
5
class SupportedASTBuilders
6
{
7
    /**
8
     * @var ASTBuilderInterface[]
9
     */
10
    private static $builders;
11
12
    /**
13
     * @var array
14
     */
15
    private static $supportedBuilders = [
16
        // Standard
17
        DocumentASTBuilder::class,
18
        OperationDefinitionASTBuilder::class,
19
        SelectionSetASTBuilder::class,
20
        VariableDefinitionASTBuilder::class,
21
        FragmentASTBuilder::class,
22
        FieldASTBuilder::class,
23
        NameASTBuilder::class,
24
        NamedTypeASTBuilder::class,
25
        TypeReferenceASTBuilder::class,
26
        DirectivesASTBuilder::class,
27
        ArgumentsASTBuilder::class,
28
        ValueLiteralASTBuilder::class,
29
        StringLiteralASTBuilder::class,
30
        VariableASTBuilder::class,
31
        // Schema Definition Language
32
        SchemaDefinitionASTBuilder::class,
33
        ScalarTypeDefinitionASTBuilder::class,
34
        ScalarTypeExtensionASTBuilder::class,
35
        ObjectTypeDefinitionASTBuilder::class,
36
        ObjectTypeExtensionASTBuilder::class,
37
        ImplementsInterfacesASTBuilder::class,
38
        InterfaceTypeDefinitionASTBuilder::class,
39
        InterfaceTypeExtensionASTBuilder::class,
40
        EnumTypeDefinitionASTBuilder::class,
41
        EnumTypeExtensionASTBuilder::class,
42
        EnumValuesDefinitionASTBuilder::class,
43
        UnionTypeDefinitionASTBuilder::class,
44
        UnionTypeExtensionASTBuilder::class,
45
        UnionMemberTypesASTBuilder::class,
46
        InputObjectTypeDefinitionASTBuilder::class,
47
        InputObjectTypeExtensionASTBuilder::class,
48
        InputFieldsDefinitionASTBuilder::class,
49
        InputValueDefinitionASTBuilder::class,
50
        DirectiveDefinitionASTBuilder::class,
51
        DescriptionASTBuilder::class,
52
        FragmentDefinitionASTBuilder::class,
53
        FieldsDefinitionASTBuilder::class,
54
        ArgumentsDefinitionASTBuilder::class,
55
    ];
56
57
    /**
58
     * @return array
59
     */
60
    public static function get(): array
61
    {
62
        if (null === self::$builders) {
0 ignored issues
show
introduced by
The condition null === self::builders is always false.
Loading history...
63
            self::$builders = [];
64
65
            foreach (self::$supportedBuilders as $className) {
66
                self::$builders[] = new $className();
67
            }
68
        }
69
70
        return self::$builders;
71
    }
72
}
73