Code Duplication    Length = 45-48 lines in 2 locations

src/annotation/AnnotationResolver.php 1 location

@@ 16-60 (lines=45) @@
13
 *
14
 * @author Vitaly Iegorov <[email protected]>
15
 */
16
class AnnotationResolver implements ResolverInterface
17
{
18
    /** @var AnnotationResolverInterface */
19
    protected $classResolver;
20
21
    /** @var AnnotationResolverInterface */
22
    protected $propertyResolver;
23
24
    /** @var AnnotationResolverInterface */
25
    protected $methodResolver;
26
27
    /**
28
     * AnnotationResolver constructor.
29
     *
30
     * @param AnnotationResolverInterface $classResolver
31
     * @param AnnotationResolverInterface $propertyResolver
32
     * @param AnnotationResolverInterface $methodResolver
33
     */
34
    public function __construct(AnnotationResolverInterface $classResolver, AnnotationResolverInterface $propertyResolver, AnnotationResolverInterface $methodResolver)
35
    {
36
        $this->classResolver = $classResolver;
37
        $this->propertyResolver = $propertyResolver;
38
        $this->methodResolver = $methodResolver;
39
    }
40
41
    /**
42
     * {@inheritDoc}
43
     */
44
    public function resolve($classData, string $identifier = null) : ClassMetadata
45
    {
46
        /** @var \ReflectionClass $classData */
47
48
        // Create and fill class metadata base fields
49
        $classMetadata = new ClassMetadata();
50
51
        // Resolve class definition annotations
52
        $this->classResolver->resolve($classData, $classMetadata);
53
        // Resolve class properties annotations
54
        $this->propertyResolver->resolve($classData, $classMetadata);
55
        // Resolve class methods annotations
56
        $this->methodResolver->resolve($classData, $classMetadata);
57
58
        return $classMetadata;
59
    }
60
}
61

src/resolver/XmlResolver.php 1 location

@@ 19-66 (lines=48) @@
16
 * @author Vitaly Iegorov <[email protected]>
17
 * @author Ruslan Molodyko  <[email protected]>
18
 */
19
class XmlResolver implements ResolverInterface
20
{
21
    /** @var CollectionClassResolver */
22
    protected $classResolver;
23
24
    /** @var CollectionPropertyResolver */
25
    protected $propertyResolver;
26
27
    /** @var CollectionMethodResolver */
28
    protected $methodResolver;
29
30
    /**
31
     * AnnotationResolver constructor.
32
     *
33
     * @param CollectionClassResolver $classResolver
34
     * @param CollectionPropertyResolver $propertyResolver
35
     * @param CollectionMethodResolver $methodResolver
36
     */
37
    public function __construct(
38
        CollectionClassResolver $classResolver,
39
        CollectionPropertyResolver $propertyResolver,
40
        CollectionMethodResolver $methodResolver
41
    ) {
42
        $this->classResolver = $classResolver;
43
        $this->propertyResolver = $propertyResolver;
44
        $this->methodResolver = $methodResolver;
45
    }
46
47
    /**
48
     * {@inheritDoc}
49
     */
50
    public function resolve($classData, string $identifier = null) : ClassMetadata
51
    {
52
        /** @var array $classData */
53
54
        // Create and fill class metadata base fields
55
        $classMetadata = new ClassMetadata();
56
57
        // Resolve class definition annotations
58
        $this->classResolver->resolve($classData, $classMetadata);
59
        // Resolve class properties annotations
60
        $this->propertyResolver->resolve($classData, $classMetadata);
61
        // Resolve class methods annotations
62
        $this->methodResolver->resolve($classData, $classMetadata);
63
64
        return $classMetadata;
65
    }
66
}
67