MongoDbCodecSet::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 14
ccs 0
cts 8
cp 0
rs 9.7998
c 0
b 0
f 0
cc 1
nc 1
nop 5
crap 2
1
<?php
2
/**
3
 * File was created 09.10.2015 13:26
4
 */
5
6
namespace PeekAndPoke\Component\Slumber\Data\MongoDb;
7
8
use PeekAndPoke\Component\Slumber\Data\EntityPool;
9
use PeekAndPoke\Component\Slumber\Data\Events\PostDeleteEvent;
10
use PeekAndPoke\Component\Slumber\Data\Events\PostSaveEvent;
11
use PeekAndPoke\Component\Slumber\Data\Storage;
12
use Psr\Container\ContainerInterface;
13
use Psr\Log\LoggerInterface;
14
15
/**
16
 * @author Karsten J. Gerber <[email protected]>
17
 */
18
class MongoDbCodecSet
19
{
20
    /** @var ContainerInterface */
21
    private $container;
22
    /** @var MongoDbEntityConfigReader */
23
    private $lookUp;
24
    /** @var MongoDbSlumberer */
25
    private $slumberer;
26
    /** @var MongoDbAwaker */
27
    private $awaker;
28
    /** @var MongoDbIndexer */
29
    private $indexer;
30
31
    /**
32
     * @param ContainerInterface        $container
33
     * @param MongoDbEntityConfigReader $lookUp
34
     * @param EntityPool                $pool
35
     * @param Storage                   $storage
36
     * @param LoggerInterface           $logger
37
     */
38
    public function __construct(ContainerInterface $container, MongoDbEntityConfigReader $lookUp, EntityPool $pool, Storage $storage, LoggerInterface $logger)
39
    {
40
        $this->lookUp = $lookUp;
41
42
        $this->slumberer = new MongoDbSlumbererImpl($lookUp, $storage, $container);
43
44
        $this->awaker = new MongoDbPoolingAwaker(
45
            new MongoDbAwakerImpl($lookUp, $storage), $pool, $lookUp
46
        );
47
48
        $this->container = $container;
49
50
        $this->indexer = new MongoDbIndexer($lookUp, $logger);
51
    }
52
53
    /**
54
     * @return MongoDbEntityConfigReader
55
     */
56
    public function getLookUp()
57
    {
58
        return $this->lookUp;
59
    }
60
61
    /**
62
     * @param mixed $subject
63
     * @param mixed $slumbering
64
     *
65
     * @return PostSaveEvent
66
     */
67 4
    public function createPostSaveEventFor($subject, $slumbering)
68
    {
69 4
        return new PostSaveEvent($this->container, $subject, $slumbering);
70
    }
71
72
    /**
73
     * @param mixed $subject
74
     *
75
     * @return PostDeleteEvent
76
     */
77
    public function createPostDeleteEventFor($subject)
78
    {
79
        return new PostDeleteEvent($this->container, $subject);
80
    }
81
82
    /**
83
     * @return MongoDbSlumberer
84
     */
85 28
    public function getSlumberer()
86
    {
87 28
        return $this->slumberer;
88
    }
89
90
    /**
91
     * @return MongoDbAwaker
92
     */
93 21
    public function getAwaker()
94
    {
95 21
        return $this->awaker;
96
    }
97
98
    /**
99
     * @return MongoDbIndexer
100
     */
101
    public function getIndexer()
102
    {
103
        return $this->indexer;
104
    }
105
}
106