Completed
Push — develop ( e58249...8761a6 )
by
unknown
07:04
created

MetaDataHydrator   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 41
c 0
b 0
f 0
wmc 5
lcom 0
cbo 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A extract() 0 10 2
A hydrate() 0 12 3
1
<?php
2
/**
3
 * YAWIK
4
 *
5
 * @filesource
6
 * @license MIT
7
 * @copyright  2013 - 2017 Cross Solution <http://cross-solution.de>
8
 */
9
  
10
/** */
11
namespace Core\Form\Hydrator;
12
13
use Core\Entity\MetaDataProviderInterface;
14
use Zend\Hydrator\HydratorInterface;
15
16
/**
17
 * Hydrator for entity meta data.
18
 * 
19
 * @author Mathias Gelhausen <[email protected]>
20
 * @since 0.29
21
 */
22
class MetaDataHydrator implements HydratorInterface
23
{
24
    /**
25
     * Extract meta data from an entity.
26
     *
27
     * @param  object $object
28
     *
29
     * @return array
30
     */
31
    public function extract($object)
32
    {
33
        if (!$object instanceOf MetaDataProviderInterface) {
34
            return [];
35
        }
36
37
        $data = $object->getMetaData();
38
39
        return $data;
40
    }
41
42
    /**
43
     * Hydrate $object with the provided meta data array.
44
     *
45
     * @param  array  $data
46
     * @param  object $object
47
     *
48
     * @return object
49
     */
50
    public function hydrate(array $data, $object)
51
    {
52
        if (!$object instanceOf MetaDataProviderInterface) {
53
            return $object;
54
        }
55
56
        foreach ($data as $key => $value) {
57
            $object->setMetaData($key, $value);
58
        }
59
60
        return $object;
61
    }
62
}