DbReferenceCollectionMapper   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 54.55%

Importance

Changes 0
Metric Value
dl 0
loc 49
c 0
b 0
f 0
wmc 5
lcom 1
cbo 3
ccs 6
cts 11
cp 0.5455
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getOptions() 0 4 1
A slumber() 0 8 2
A awake() 0 4 1
1
<?php
2
/**
3
 * Created by gerk on 15.11.16 13:12
4
 */
5
6
namespace PeekAndPoke\Component\Slumber\Data\MongoDb\Types;
7
8
use PeekAndPoke\Component\Slumber\Annotation\Slumber\AsCollection;
9
use PeekAndPoke\Component\Slumber\Core\Codec\Awaker;
10
use PeekAndPoke\Component\Slumber\Core\Codec\Property\AbstractPropertyMapper;
11
use PeekAndPoke\Component\Slumber\Core\Codec\Property\CollectionMapper;
12
use PeekAndPoke\Component\Slumber\Core\Codec\Slumberer;
13
use PeekAndPoke\Component\Slumber\Data\LazyDbReferenceCollection;
14
15
16
/**
17
 * @author Karsten J. Gerber <[email protected]>
18
 */
19
class DbReferenceCollectionMapper extends AbstractPropertyMapper
20
{
21
    /** @var CollectionMapper */
22
    private $delegate;
23
24
    /**
25
     * DbReferenceCollectionMapper constructor.
26
     *
27
     * @param CollectionMapper $delegate
28
     */
29
    public function __construct(CollectionMapper $delegate)
30
    {
31
        $this->delegate = $delegate;
32
    }
33
34
    /**
35
     * @return AsCollection
36
     */
37
    public function getOptions()
38
    {
39
        return $this->delegate->getOptions();
40
    }
41
42
    /**
43
     * @param Slumberer $slumberer
44
     * @param mixed     $value
45
     *
46
     * @return mixed
47
     */
48 23
    public function slumber(Slumberer $slumberer, $value)
49
    {
50 23
        if ($value instanceof LazyDbReferenceCollection) {
51 1
            return $this->delegate->slumber($slumberer, $value->getData());
52
        }
53
54 23
        return $this->delegate->slumber($slumberer, $value);
55
    }
56
57
    /**
58
     * @param Awaker $awaker
59
     * @param mixed  $value
60
     *
61
     * @return mixed
62
     */
63 17
    public function awake(Awaker $awaker, $value)
64
    {
65 17
        return $this->delegate->awake($awaker, $value);
66
    }
67
}
68