Issues (3641)

Business/Collector/AbstractPropelCollector.php (1 issue)

1
<?php
2
3
/**
4
 * Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace Spryker\Zed\Collector\Business\Collector;
9
10
use Generated\Shared\Transfer\LocaleTransfer;
11
use Orm\Zed\Touch\Persistence\SpyTouchQuery;
12
use Spryker\Service\UtilDataReader\UtilDataReaderServiceInterface;
13
use Spryker\Zed\Collector\Business\Exporter\Exception\DependencyException;
14
use Spryker\Zed\Collector\CollectorConfig;
15
use Spryker\Zed\Collector\Persistence\Collector\AbstractPropelCollectorQuery;
16
use Spryker\Zed\PropelOrm\Business\Runtime\ActiveQuery\Criteria;
17
18
abstract class AbstractPropelCollector extends AbstractDatabaseCollector
19
{
20
    /**
21
     * @var \Spryker\Zed\Collector\Persistence\Collector\AbstractPropelCollectorQuery
22
     */
23
    protected $queryBuilder;
24
25
    /**
26
     * @var \Spryker\Service\UtilDataReader\UtilDataReaderServiceInterface
27
     */
28
    protected $utilDataReaderService;
29
30
    /**
31
     * @param \Spryker\Service\UtilDataReader\UtilDataReaderServiceInterface $utilDataReaderService
32
     */
33
    public function __construct(UtilDataReaderServiceInterface $utilDataReaderService)
34
    {
35
        $this->utilDataReaderService = $utilDataReaderService;
36
    }
37
38
    /**
39
     * @throws \Spryker\Zed\Collector\Business\Exporter\Exception\DependencyException
40
     *
41
     * @return void
42
     */
43
    protected function validateDependencies()
44
    {
45
        parent::validateDependencies();
46
47
        if (!($this->queryBuilder instanceof AbstractPropelCollectorQuery)) {
0 ignored issues
show
$this->queryBuilder is always a sub-type of Spryker\Zed\Collector\Pe...actPropelCollectorQuery.
Loading history...
48
            throw new DependencyException(sprintf(
49
                'queryBuilder does not implement AbstractPropelCollectorQuery in %s',
50
                static::class,
51
            ));
52
        }
53
    }
54
55
    /**
56
     * @return \Spryker\Service\UtilDataReader\Model\BatchIterator\CountableIteratorInterface
57
     */
58
    protected function generateBatchIterator()
59
    {
60
        return $this->utilDataReaderService->getPropelBatchIteratorOrdered(
61
            $this->queryBuilder->getTouchQuery(),
62
            $this->chunkSize,
63
            CollectorConfig::COLLECTOR_TOUCH_ID,
64
            Criteria::ASC,
65
        );
66
    }
67
68
    /**
69
     * @param \Orm\Zed\Touch\Persistence\SpyTouchQuery $touchQuery
70
     * @param \Generated\Shared\Transfer\LocaleTransfer $localeTransfer
71
     *
72
     * @return void
73
     */
74
    protected function prepareCollectorScope(SpyTouchQuery $touchQuery, LocaleTransfer $localeTransfer)
75
    {
76
        $this->locale = $localeTransfer;
77
78
        $this->queryBuilder->setTouchQuery($touchQuery);
79
80
        $this->queryBuilder
81
            ->setStoreTransfer($this->getCurrentStore())
82
            ->setLocale($localeTransfer)
83
            ->prepare();
84
    }
85
}
86