Code Duplication    Length = 63-63 lines in 2 locations

src/Bundle/ResourceBundle/EventSubscriber/Doctrine/MongoDB/ResourceSubscriber.php 1 location

@@ 25-87 (lines=63) @@
22
/**
23
 * @author GeLo <[email protected]>
24
 */
25
class ResourceSubscriber implements EventSubscriber
26
{
27
    /**
28
     * @var RegistryInterface
29
     */
30
    private $resourceRegistry;
31
32
    /**
33
     * @param RegistryInterface $registry
34
     */
35
    public function __construct(RegistryInterface $registry)
36
    {
37
        $this->resourceRegistry = $registry;
38
    }
39
40
    /**
41
     * @param LoadClassMetadataEventArgs $event
42
     */
43
    public function loadClassMetadata(LoadClassMetadataEventArgs $event)
44
    {
45
        /** @var ClassMetadata $classMetadata */
46
        $classMetadata = $event->getClassMetadata();
47
48
        if (($resource = $this->resolveResource($classMetadata->getName())) !== null) {
49
            foreach ($classMetadata->parentClasses as $parentClass) {
50
                try {
51
                    $parentMetadata = $event->getObjectManager()->getClassMetadata($parentClass);
52
                } catch (MappingException $e) {
53
                    continue;
54
                }
55
56
                /** @var ClassMetadata $parentMetadata */
57
                if ($parentMetadata->inheritanceType === ClassMetadata::INHERITANCE_TYPE_NONE) {
58
                    $parentMetadata->isMappedSuperclass = true;
59
                }
60
            }
61
62
            $classMetadata->setCustomRepositoryClass($resource->getRepository());
63
        }
64
    }
65
66
    /**
67
     * {@inheritdoc}
68
     */
69
    public function getSubscribedEvents()
70
    {
71
        return [Events::loadClassMetadata];
72
    }
73
74
    /**
75
     * @param string $class
76
     *
77
     * @return ResourceInterface|null
78
     */
79
    private function resolveResource($class)
80
    {
81
        foreach ($this->resourceRegistry as $resource) {
82
            if ($resource->getModel() === $class) {
83
                return $resource;
84
            }
85
        }
86
    }
87
}
88

src/Bundle/ResourceBundle/EventSubscriber/Doctrine/ORM/ResourceSubscriber.php 1 location

@@ 25-87 (lines=63) @@
22
/**
23
 * @author GeLo <[email protected]>
24
 */
25
class ResourceSubscriber implements EventSubscriber
26
{
27
    /**
28
     * @var RegistryInterface
29
     */
30
    private $resourceRegistry;
31
32
    /**
33
     * @param RegistryInterface $registry
34
     */
35
    public function __construct(RegistryInterface $registry)
36
    {
37
        $this->resourceRegistry = $registry;
38
    }
39
40
    /**
41
     * @param LoadClassMetadataEventArgs $event
42
     */
43
    public function loadClassMetadata(LoadClassMetadataEventArgs $event)
44
    {
45
        /** @var ClassMetadata $classMetadata */
46
        $classMetadata = $event->getClassMetadata();
47
48
        if (($resource = $this->resolveResource($classMetadata->getName())) !== null) {
49
            foreach ($classMetadata->parentClasses as $parentClass) {
50
                try {
51
                    $parentMetadata = $event->getObjectManager()->getClassMetadata($parentClass);
52
                } catch (MappingException $e) {
53
                    continue;
54
                }
55
56
                /** @var ClassMetadata $parentMetadata */
57
                if ($parentMetadata->inheritanceType === ClassMetadata::INHERITANCE_TYPE_NONE) {
58
                    $parentMetadata->isMappedSuperclass = true;
59
                }
60
            }
61
62
            $classMetadata->setCustomRepositoryClass($resource->getRepository());
63
        }
64
    }
65
66
    /**
67
     * {@inheritdoc}
68
     */
69
    public function getSubscribedEvents()
70
    {
71
        return [Events::loadClassMetadata];
72
    }
73
74
    /**
75
     * @param string $class
76
     *
77
     * @return ResourceInterface|null
78
     */
79
    private function resolveResource($class)
80
    {
81
        foreach ($this->resourceRegistry as $resource) {
82
            if ($resource->getModel() === $class) {
83
                return $resource;
84
            }
85
        }
86
    }
87
}
88