Code Duplication    Length = 59-61 lines in 2 locations

src/Denormalizer/DenormalizerObjectMappingRegistry.php 1 location

@@ 12-72 (lines=61) @@
9
use Chubbyphp\Deserialization\Mapping\DenormalizationObjectMappingInterface;
10
use Doctrine\Common\Persistence\Proxy;
11
12
final class DenormalizerObjectMappingRegistry implements DenormalizerObjectMappingRegistryInterface
13
{
14
    /**
15
     * @var DenormalizationObjectMappingInterface[]
16
     */
17
    private $objectMappings;
18
19
    /**
20
     * @param array $objectMappings
21
     */
22
    public function __construct(array $objectMappings)
23
    {
24
        $this->objectMappings = [];
25
        foreach ($objectMappings as $objectMapping) {
26
            $this->addObjectMapping($objectMapping);
27
        }
28
    }
29
30
    /**
31
     * @param DenormalizationObjectMappingInterface $objectMapping
32
     */
33
    private function addObjectMapping(DenormalizationObjectMappingInterface $objectMapping)
34
    {
35
        $this->objectMappings[$objectMapping->getClass()] = $objectMapping;
36
    }
37
38
    /**
39
     * @param string $class
40
     *
41
     * @return DenormalizationObjectMappingInterface
42
     *
43
     * @throws DeserializerLogicException
44
     */
45
    public function getObjectMapping(string $class): DenormalizationObjectMappingInterface
46
    {
47
        $reflectionClass = new \ReflectionClass($class);
48
49
        if (interface_exists('Doctrine\Common\Persistence\Proxy')
50
            && in_array(Proxy::class, $reflectionClass->getInterfaceNames(), true)
51
        ) {
52
            $parentClass = $reflectionClass->getParentClass()->name;
53
            @trigger_error(
54
                sprintf(
55
                    'Use "%s" instead of "%s" for "%s"',
56
                    DoctrineDenormalizerObjectMappingRegistry::class,
57
                    self::class,
58
                    $parentClass
59
                ),
60
                E_USER_DEPRECATED
61
            );
62
63
            $class = $parentClass;
64
        }
65
66
        if (isset($this->objectMappings[$class])) {
67
            return $this->objectMappings[$class];
68
        }
69
70
        throw DeserializerLogicException::createMissingMapping($class);
71
    }
72
}
73

src/Doctrine/Denormalizer/DenormalizerObjectMappingRegistry.php 1 location

@@ 12-70 (lines=59) @@
9
use Chubbyphp\Deserialization\Mapping\DenormalizationObjectMappingInterface;
10
use Doctrine\Common\Persistence\Proxy;
11
12
final class DenormalizerObjectMappingRegistry implements DenormalizerObjectMappingRegistryInterface
13
{
14
    /**
15
     * @var DenormalizationObjectMappingInterface[]
16
     */
17
    private $objectMappings;
18
19
    /**
20
     * @param array $objectMappings
21
     */
22
    public function __construct(array $objectMappings)
23
    {
24
        $this->objectMappings = [];
25
        foreach ($objectMappings as $objectMapping) {
26
            $this->addObjectMapping($objectMapping);
27
        }
28
    }
29
30
    /**
31
     * @param DenormalizationObjectMappingInterface $objectMapping
32
     */
33
    private function addObjectMapping(DenormalizationObjectMappingInterface $objectMapping)
34
    {
35
        $this->objectMappings[$objectMapping->getClass()] = $objectMapping;
36
    }
37
38
    /**
39
     * @param string $class
40
     *
41
     * @return DenormalizationObjectMappingInterface
42
     *
43
     * @throws DeserializerLogicException
44
     */
45
    public function getObjectMapping(string $class): DenormalizationObjectMappingInterface
46
    {
47
        $reflectionClass = new \ReflectionClass($class);
48
49
        if (in_array(Proxy::class, $reflectionClass->getInterfaceNames(), true)) {
50
            $parentClass = $reflectionClass->getParentClass()->name;
51
            @trigger_error(
52
                sprintf(
53
                    'Use "%s" instead of "%s" for "%s"',
54
                    DoctrineDenormalizerObjectMappingRegistry::class,
55
                    self::class,
56
                    $parentClass
57
                ),
58
                E_USER_DEPRECATED
59
            );
60
61
            $class = $parentClass;
62
        }
63
64
        if (isset($this->objectMappings[$class])) {
65
            return $this->objectMappings[$class];
66
        }
67
68
        throw DeserializerLogicException::createMissingMapping($class);
69
    }
70
}
71