Passed
Branch development (62ef01)
by Theodoros
06:18
created

AbstractExporter   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 88
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 88
rs 10
c 0
b 0
f 0
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A isCollectorRegistered() 0 3 1
A getBatchResultTransfer() 0 7 1
A getCollectorPlugins() 0 3 1
A resetResult() 0 6 1
A __construct() 0 10 1
1
<?php
2
3
/**
4
 * MIT License
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Zed\Econda\Business\Exporter;
9
10
use Generated\Shared\Transfer\BatchResultTransfer;
11
use Generated\Shared\Transfer\FailedResultTransfer;
12
use SprykerEco\Zed\Econda\Business\Exporter\Writer\WriterInterface;
13
14
abstract class AbstractExporter implements ExporterInterface
15
{
16
    /**
17
     * @var \SprykerEco\Zed\Econda\Dependency\Plugin\EcondaPluginInterface[]
18
     */
19
    protected $collectorPlugins = [];
20
21
    /**
22
     * @var \Generated\Shared\Transfer\FailedResultTransfer
23
     */
24
    protected $failedResultTransfer;
25
26
    /**
27
     * @var \Generated\Shared\Transfer\BatchResultTransfer
28
     */
29
    protected $batchResultTransfer;
30
31
    /**
32
     * @var \SprykerEco\Zed\Econda\Business\Exporter\Writer\WriterInterface
33
     */
34
    protected $writer;
35
36
    /**
37
     * @var \Spryker\Zed\Touch\Persistence\TouchQueryContainerInterface
38
     */
39
    protected $queryContainer;
40
41
    /**
42
     * AbstractExporter constructor.
43
     *
44
     * @param \SprykerEco\Zed\Econda\Business\Exporter\Writer\WriterInterface $writer
45
     * @param \Generated\Shared\Transfer\FailedResultTransfer $failedResultTransfer
46
     * @param \Generated\Shared\Transfer\BatchResultTransfer $batchResultTransfer
47
     * @param array $collectorPlugins
48
     */
49
    public function __construct(
50
        WriterInterface $writer,
51
        FailedResultTransfer $failedResultTransfer,
52
        BatchResultTransfer $batchResultTransfer,
53
        array $collectorPlugins = []
54
    ) {
55
        $this->writer = $writer;
56
        $this->failedResultTransfer = $failedResultTransfer;
57
        $this->batchResultTransfer = $batchResultTransfer;
58
        $this->collectorPlugins = $collectorPlugins;
59
    }
60
61
    /**
62
     * @return \SprykerEco\Zed\Econda\Dependency\Plugin\EcondaPluginInterface[]
63
     */
64
    public function getCollectorPlugins()
65
    {
66
        return $this->collectorPlugins;
67
    }
68
69
    /**
70
     * @param string $type
71
     *
72
     * @return bool
73
     */
74
    protected function isCollectorRegistered($type)
75
    {
76
        return array_key_exists($type, $this->collectorPlugins);
77
    }
78
79
    /**
80
     * @param \Generated\Shared\Transfer\BatchResultTransfer $result
81
     *
82
     * @return void
83
     */
84
    protected function resetResult(BatchResultTransfer $result)
85
    {
86
        $result->setProcessedCount(0);
87
        $result->setIsFailed(false);
88
        $result->setTotalCount(0);
89
        $result->setDeletedCount(0);
90
    }
91
92
    /**
93
     * @return \Generated\Shared\Transfer\BatchResultTransfer
94
     */
95
    protected function getBatchResultTransfer()
96
    {
97
        $resultBatchTransfer = clone $this->batchResultTransfer;
98
        $resultBatchTransfer->setDeletedCount(0);
99
        $resultBatchTransfer->setFailedCount(0);
100
101
        return $resultBatchTransfer;
102
    }
103
}
104