Code Duplication    Length = 29-31 lines in 2 locations

src/Hydrator/Extension/IncludedExtension.php 1 location

@@ 16-46 (lines=31) @@
13
 *
14
 * @package Mikemirten\Component\JsonApi\Hydrator\Extension
15
 */
16
class IncludedExtension implements ExtensionInterface
17
{
18
    /**
19
     * {@inheritdoc}
20
     */
21
    public function hydrate($object, $source, DocumentHydrator $hydrator)
22
    {
23
        if (! $object instanceof IncludedResourcesAwareInterface) {
24
            throw new InvalidDocumentException(sprintf(
25
                'Given instance of "%s" does not implements "%s"',
26
                get_class($object),
27
                IncludedResourcesAwareInterface::class
28
            ));
29
        }
30
31
        foreach ($source as $item)
32
        {
33
            $resource = $hydrator->hydrateResource($item);
34
35
            $object->addIncludedResource($resource);
36
        }
37
    }
38
39
    /**
40
     * {@inheritdoc}
41
     */
42
    public function supports(): array
43
    {
44
        return ['included'];
45
    }
46
}

src/Hydrator/Extension/MetadataExtension.php 1 location

@@ 17-45 (lines=29) @@
14
 *
15
 * @package Mikemirten\Component\JsonApi\Hydrator\Extension
16
 */
17
class MetadataExtension implements ExtensionInterface
18
{
19
    /**
20
     * {@inheritdoc}
21
     */
22
    public function hydrate($object, $source, DocumentHydrator $hydrator)
23
    {
24
        if (! $object instanceof MetadataAwareInterface) {
25
            throw new InvalidDocumentException(sprintf(
26
                'Given instance of "%s" does not implements "%s"',
27
                get_class($object),
28
                MetadataAwareInterface::class
29
            ));
30
        }
31
32
        foreach ($source as $name => $value)
33
        {
34
            $object->setMetadataAttribute($name, $value);
35
        }
36
    }
37
38
    /**
39
     * {@inheritdoc}
40
     */
41
    public function supports(): array
42
    {
43
        return ['meta'];
44
    }
45
}