Completed
Push — master ( 30c79d...a5e792 )
by Tim
9s
created

ImportProcessorFactory   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 88
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 10

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 1
c 0
b 0
f 0
lcom 0
cbo 10
dl 0
loc 88
ccs 0
cts 52
cp 0
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B factory() 0 76 1
1
<?php
2
3
/**
4
 * TechDivision\Import\Cli\Services\ImportProcessorFactory
5
 *
6
 * NOTICE OF LICENSE
7
 *
8
 * This source file is subject to the Open Software License (OSL 3.0)
9
 * that is available through the world-wide-web at this URL:
10
 * http://opensource.org/licenses/osl-3.0.php
11
 *
12
 * PHP version 5
13
 *
14
 * @author    Tim Wagner <[email protected]>
15
 * @copyright 2016 TechDivision GmbH <[email protected]>
16
 * @license   http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
17
 * @link      https://github.com/techdivision/import-cli-simple
18
 * @link      http://www.techdivision.com
19
 */
20
21
namespace TechDivision\Import\Cli\Services;
22
23
use TechDivision\Import\ConfigurationInterface;
24
use TechDivision\Import\Services\ImportProcessor;
25
use TechDivision\Import\Repositories\StoreRepository;
26
use TechDivision\Import\Repositories\TaxClassRepository;
27
use TechDivision\Import\Repositories\LinkTypeRepository;
28
use TechDivision\Import\Repositories\CategoryRepository;
29
use TechDivision\Import\Repositories\StoreWebsiteRepository;
30
use TechDivision\Import\Repositories\EavAttributeRepository;
31
use TechDivision\Import\Repositories\CoreConfigDataRepository;
32
use TechDivision\Import\Repositories\CategoryVarcharRepository;
33
use TechDivision\Import\Repositories\EavAttributeSetRepository;
34
35
/**
36
 * Factory to create a new import processor.
37
 *
38
 * @author    Tim Wagner <[email protected]>
39
 * @copyright 2016 TechDivision GmbH <[email protected]>
40
 * @license   http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
41
 * @link      https://github.com/techdivision/import-cli-simple
42
 * @link      http://www.techdivision.com
43
 */
44
class ImportProcessorFactory
45
{
46
47
    /**
48
     * Factory method to create a new import processor instance.
49
     *
50
     * @param \PDO                                       $connection    The PDO connection to use
51
     * @param TechDivision\Import\ConfigurationInterface $configuration The subject configuration
52
     *
53
     * @return object The processor instance
54
     */
55
    public static function factory(\PDO $connection, ConfigurationInterface $configuration)
56
    {
57
58
        // extract Magento edition/version
59
        $utilityClassName = $configuration->getUtilityClassName();
60
61
        // initialize the repository that provides category query functionality
62
        $categoryRepository = new CategoryRepository();
63
        $categoryRepository->setUtilityClassName($utilityClassName);
64
        $categoryRepository->setConnection($connection);
65
        $categoryRepository->init();
66
67
        // initialize the repository that provides category varchar value query functionality
68
        $categoryVarcharRepository = new CategoryVarcharRepository();
69
        $categoryVarcharRepository->setUtilityClassName($utilityClassName);
70
        $categoryVarcharRepository->setConnection($connection);
71
        $categoryVarcharRepository->init();
72
73
        // initialize the repository that provides EAV attribute query functionality
74
        $eavAttributeRepository = new EavAttributeRepository();
75
        $eavAttributeRepository->setUtilityClassName($utilityClassName);
76
        $eavAttributeRepository->setConnection($connection);
77
        $eavAttributeRepository->init();
78
79
        // initialize the repository that provides EAV attribute set query functionality
80
        $eavAttributeSetRepository = new EavAttributeSetRepository();
81
        $eavAttributeSetRepository->setUtilityClassName($utilityClassName);
82
        $eavAttributeSetRepository->setConnection($connection);
83
        $eavAttributeSetRepository->init();
84
85
        // initialize the repository that provides store query functionality
86
        $storeRepository = new StoreRepository();
87
        $storeRepository->setUtilityClassName($utilityClassName);
88
        $storeRepository->setConnection($connection);
89
        $storeRepository->init();
90
91
        // initialize the repository that provides store website query functionality
92
        $storeWebsiteRepository = new StoreWebsiteRepository();
93
        $storeWebsiteRepository->setUtilityClassName($utilityClassName);
94
        $storeWebsiteRepository->setConnection($connection);
95
        $storeWebsiteRepository->init();
96
97
        // initialize the repository that provides tax class query functionality
98
        $taxClassRepository = new TaxClassRepository();
99
        $taxClassRepository->setUtilityClassName($utilityClassName);
100
        $taxClassRepository->setConnection($connection);
101
        $taxClassRepository->init();
102
103
        // initialize the repository that provides link type query functionality
104
        $linkTypeRepository = new LinkTypeRepository();
105
        $linkTypeRepository->setUtilityClassName($utilityClassName);
106
        $linkTypeRepository->setConnection($connection);
107
        $linkTypeRepository->init();
108
109
        // initialize the repository that provides core config data functionality
110
        $coreConfigDataRepository = new CoreConfigDataRepository();
111
        $coreConfigDataRepository->setUtilityClassName($utilityClassName);
112
        $coreConfigDataRepository->setConnection($connection);
113
        $coreConfigDataRepository->init();
114
115
        // initialize the import processor
116
        $importProcessor = new ImportProcessor();
117
        $importProcessor->setConnection($connection);
118
        $importProcessor->setCategoryRepository($categoryRepository);
119
        $importProcessor->setCategoryVarcharRepository($categoryVarcharRepository);
120
        $importProcessor->setEavAttributeRepository($eavAttributeRepository);
121
        $importProcessor->setEavAttributeSetRepository($eavAttributeSetRepository);
122
        $importProcessor->setStoreRepository($storeRepository);
123
        $importProcessor->setStoreWebsiteRepository($storeWebsiteRepository);
124
        $importProcessor->setTaxClassRepository($taxClassRepository);
125
        $importProcessor->setLinkTypeRepository($linkTypeRepository);
126
        $importProcessor->setCoreConfigDataRepository($coreConfigDataRepository);
0 ignored issues
show
Bug introduced by
The method setCoreConfigDataRepository() does not seem to exist on object<TechDivision\Impo...rvices\ImportProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
127
128
        // return the initialize import processor instance
129
        return $importProcessor;
130
    }
131
}
132