Failed Conditions
Pull Request — master (#247)
by Michael
02:46
created

InternalAnnotations::getNames()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 6
ccs 0
cts 5
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Doctrine\Annotations\Metadata;
6
7
use Doctrine\Annotations\Annotation\Attribute;
8
use Doctrine\Annotations\Annotation\Attributes;
9
use Doctrine\Annotations\Annotation\Enum;
10
use Doctrine\Annotations\Annotation\IgnoreAnnotation;
11
use Doctrine\Annotations\Annotation\Required;
12
use Doctrine\Annotations\Annotation\Target;
13
14
/**
15
 * @internal
16
 */
17
final class InternalAnnotations
18
{
19
    /**
20
     * @return string[]
21
     */
22
    public static function getNames() : iterable
23
    {
24
        yield Enum::class;
0 ignored issues
show
Bug Best Practice introduced by
The expression yield Doctrine\Annotations\Annotation\Enum::class returns the type Generator which is incompatible with the documented return type string[].
Loading history...
25
        yield IgnoreAnnotation::class;
26
        yield Required::class;
27
        yield Target::class;
28
    }
29
30 330
    public static function createMetadata() : MetadataCollection
31
    {
32 330
        return new MetadataCollection(
33 330
            new AnnotationMetadata(
34 330
                Attribute::class,
35 330
                AnnotationTarget::annotation(),
36 330
                false,
37 330
                new PropertyMetadata(
38 330
                    'name',
39 330
                    ['type' => 'string'],
40 330
                    true,
41 330
                    true
42
                ),
43 330
                new PropertyMetadata(
44 330
                    'type',
45 330
                    ['type' => 'string'],
46 330
                    true
47
                ),
48 330
                new PropertyMetadata(
49 330
                    'required',
50 330
                    ['type' => 'boolean']
51
                )
52
            ),
53 330
            new AnnotationMetadata(
54 330
                Attributes::class,
55 330
                AnnotationTarget::class(),
56 330
                false,
57 330
                new PropertyMetadata(
58 330
                    'value',
59
                    [
60 330
                        'type'       => 'array',
61
                        'array_type' =>'Doctrine\Annotations\Annotation\Attribute',
62
                        'value'      =>'array<Doctrine\Annotations\Annotation\Attribute>',
63
                    ],
64 330
                    true,
65 330
                    true
66
                )
67
            ),
68 330
            new AnnotationMetadata(
69 330
                Enum::class,
70 330
                AnnotationTarget::property(),
71 330
                true,
72 330
                new PropertyMetadata(
73 330
                    'value',
74 330
                    ['type' => 'array'],
75 330
                    true,
76 330
                    true
77
                ),
78 330
                new PropertyMetadata(
79 330
                    'literal',
80 330
                    ['type' => 'array']
81
                )
82
            ),
83 330
            new AnnotationMetadata(
84 330
                Target::class,
85 330
                AnnotationTarget::class(),
86 330
                true,
87 330
                new PropertyMetadata(
88 330
                    'value',
89
                    [
90 330
                        'type'      =>'array',
91
                        'array_type'=>'string',
92
                        'value'     =>'array<string>',
93
                    ],
94 330
                    false,
95 330
                    true
96
                )
97
            )
98
        );
99
    }
100
}
101