Completed
Pull Request — master (#263)
by
unknown
33:30
created

IndexedReader::getConstantAnnotation()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 3
rs 10
1
<?php
2
/*
3
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
4
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
5
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
6
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
7
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
8
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
9
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
10
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
11
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
12
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
13
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
14
 *
15
 * This software consists of voluntary contributions made by many individuals
16
 * and is licensed under the MIT license. For more information, see
17
 * <http://www.doctrine-project.org>.
18
 */
19
20
namespace Doctrine\Common\Annotations;
21
22
/**
23
 * Allows the reader to be used in-place of Doctrine's reader.
24
 *
25
 * @author Johannes M. Schmitt <[email protected]>
26
 */
27
class IndexedReader implements Reader, ReaderWithConstantsAnnotations
0 ignored issues
show
Deprecated Code introduced by
The interface Doctrine\Common\Annotati...ithConstantsAnnotations has been deprecated: This interface will be merged into Reader interface and removed in version 2.0. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

27
class IndexedReader implements Reader, /** @scrutinizer ignore-deprecated */ ReaderWithConstantsAnnotations

This interface has been deprecated. The supplier of the interface has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the interface will be removed and what other interface to use instead.

Loading history...
28
{
29
    /**
30
     * @var Reader
31
     */
32
    private $delegate;
33
34
    /**
35
     * Constructor.
36
     *
37
     * @param Reader $reader
38
     */
39
    public function __construct(Reader $reader)
40
    {
41
        $this->delegate = $reader;
42
    }
43
44
    /**
45
     * {@inheritDoc}
46
     */
47
    public function getClassAnnotations(\ReflectionClass $class)
48
    {
49
        $annotations = [];
50
        foreach ($this->delegate->getClassAnnotations($class) as $annot) {
51
            $annotations[get_class($annot)] = $annot;
52
        }
53
54
        return $annotations;
55
    }
56
57
    /**
58
     * {@inheritDoc}
59
     */
60
    public function getClassAnnotation(\ReflectionClass $class, $annotation)
61
    {
62
        return $this->delegate->getClassAnnotation($class, $annotation);
63
    }
64
65
    /**
66
     * {@inheritDoc}
67
     */
68
    public function getMethodAnnotations(\ReflectionMethod $method)
69
    {
70
        $annotations = [];
71
        foreach ($this->delegate->getMethodAnnotations($method) as $annot) {
72
            $annotations[get_class($annot)] = $annot;
73
        }
74
75
        return $annotations;
76
    }
77
78
    /**
79
     * {@inheritDoc}
80
     */
81
    public function getMethodAnnotation(\ReflectionMethod $method, $annotation)
82
    {
83
        return $this->delegate->getMethodAnnotation($method, $annotation);
84
    }
85
86
    /**
87
     * {@inheritDoc}
88
     */
89
    public function getPropertyAnnotations(\ReflectionProperty $property)
90
    {
91
        $annotations = [];
92
        foreach ($this->delegate->getPropertyAnnotations($property) as $annot) {
93
            $annotations[get_class($annot)] = $annot;
94
        }
95
96
        return $annotations;
97
    }
98
99
    /**
100
     * {@inheritDoc}
101
     */
102
    public function getPropertyAnnotation(\ReflectionProperty $property, $annotation)
103
    {
104
        return $this->delegate->getPropertyAnnotation($property, $annotation);
105
    }
106
107
    /**
108
     * {@inheritDoc}
109
     */
110
    public function getConstantAnnotations(\ReflectionClassConstant $constant): array
111
    {
112
        $annotations = [];
113
        foreach ($this->delegate->getConstantAnnotations($constant) as $annot) {
0 ignored issues
show
Bug introduced by
The method getConstantAnnotations() does not exist on Doctrine\Common\Annotations\Reader. Since it exists in all sub-types, consider adding an abstract or default implementation to Doctrine\Common\Annotations\Reader. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

113
        foreach ($this->delegate->/** @scrutinizer ignore-call */ getConstantAnnotations($constant) as $annot) {
Loading history...
114
            $annotations[get_class($annot)] = $annot;
115
        }
116
117
        return $annotations;
118
    }
119
120
    /**
121
     * {@inheritDoc}
122
     */
123
    public function getConstantAnnotation(\ReflectionClassConstant $constant, $annotation)
124
    {
125
        return $this->delegate->getConstantAnnotation($constant, $annotation);
0 ignored issues
show
Bug introduced by
The method getConstantAnnotation() does not exist on Doctrine\Common\Annotations\Reader. Since it exists in all sub-types, consider adding an abstract or default implementation to Doctrine\Common\Annotations\Reader. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

125
        return $this->delegate->/** @scrutinizer ignore-call */ getConstantAnnotation($constant, $annotation);
Loading history...
126
    }
127
128
    /**
129
     * Proxies all methods to the delegate.
130
     *
131
     * @param string $method
132
     * @param array  $args
133
     *
134
     * @return mixed
135
     */
136
    public function __call($method, $args)
137
    {
138
        return call_user_func_array([$this->delegate, $method], $args);
139
    }
140
}
141