Passed
Pull Request — master (#15)
by Volodymyr
06:19 queued 41s
created

addSuperAttributeImportProcessPlugins()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 30
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 15
nc 1
nop 1
dl 0
loc 30
rs 9.7666
c 0
b 0
f 0
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\AkeneoPimMiddlewareConnector;
9
10
use Orm\Zed\Product\Persistence\SpyProductAbstractQuery;
0 ignored issues
show
Bug introduced by
The type Orm\Zed\Product\Persiste...SpyProductAbstractQuery was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
11
use Spryker\Zed\Kernel\AbstractBundleDependencyProvider;
12
use Spryker\Zed\Kernel\Container;
13
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\AttributeMapMapperStagePlugin;
14
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\AttributeMapPreparationMapperStagePlugin;
15
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\AttributeMapTranslationStagePlugin;
16
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\CategoryImportTranslationStagePlugin;
17
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\CategoryMapperStagePlugin;
18
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Configuration\AttributeImportConfigurationPlugin;
19
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Configuration\AttributeMapConfigurationPlugin;
20
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Configuration\CategoryImportConfigurationPlugin;
21
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Configuration\DefaultCategoryImportConfigurationPlugin;
22
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Configuration\DefaultProductImportConfigurationPlugin;
23
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Configuration\DefaultProductModelImportConfigurationPlugin;
24
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Configuration\LocaleMapImportConfigurationPlugin;
25
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Configuration\ProductImportConfigurationPlugin;
26
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Configuration\ProductModelImportConfigurationPlugin;
27
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Configuration\ProductModelPreparationConfigurationPlugin;
28
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Configuration\ProductPreparationConfigurationPlugin;
29
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Configuration\SuperAttributeImportConfigurationPlugin;
30
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Configuration\TaxSetMapImportConfigurationPlugin;
31
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\DefaultCategoryImportTranslationStagePlugin;
32
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\DefaultCategoryMapperStagePlugin;
33
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\DefaultProductImportTranslationStagePlugin;
34
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\DefaultProductImportValidatorStagePlugin;
35
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\DefaultProductModelImportTranslationStagePlugin;
36
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\DefaultProductModelImportValidatorStagePlugin;
37
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\LocaleMapperStagePlugin;
38
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\ProductImportTranslationStagePlugin;
39
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\ProductMapperStagePlugin;
40
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\ProductModelImportMapperStagePlugin;
41
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\ProductModelImportTranslationStagePlugin;
42
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Stream\AttributeAkeneoApiStreamPlugin;
43
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Stream\AttributeWriteStreamPlugin;
44
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Stream\CategoryAkeneoApiStreamPlugin;
45
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Stream\CategoryWriteStreamPlugin;
46
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Stream\JsonObjectWriteStreamPlugin;
47
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Stream\JsonSuperAttributeWriteStreamPlugin;
48
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Stream\LocaleStreamPlugin;
49
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Stream\ProductAbstractWriteStreamPlugin;
50
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Stream\ProductAkeneoApiStreamPlugin;
51
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Stream\ProductConcreteWriteStreamPlugin;
52
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Stream\ProductModelAkeneoApiStreamPlugin;
53
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Stream\SuperAttributesAkeneoApiStreamPlugin;
54
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Stream\TaxSetStreamPlugin;
55
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TaxSetMapperStagePlugin;
56
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\AddAbstractSkuIfNotExistTranslatorFunctionPlugin;
57
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\AddAttributeOptionsTranslatorFunctionPlugin;
58
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\AddAttributeValuesTranslatorFunctionPlugin;
59
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\AddFamilyAttributeTranslatorFunctionPlugin;
60
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\AddMissingAttributesTranslatorFunctionPlugin;
61
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\AddMissingLocalesTranslatorFunctionPlugin;
62
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\AddUrlToLocalizedAttributesTranslatorFunctionPlugin;
63
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\AttributeEmptyTranslationToKeyTranslatorFunctionPlugin;
64
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\DefaultPriceSelectorTranslatorFunctionPlugin;
65
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\DefaultValuesToLocalizedAttributesTranslatorFunctionPlugin;
66
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\EnrichAttributesTranslatorFunctionPlugin;
67
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\LabelsToLocaleIdsTranslatorFunctionPlugin;
68
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\LabelsToLocalizedAttributeNamesTranslatorFunctionPlugin;
69
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\LocaleKeysToIdsTranslatorFunctionPlugin;
70
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\MarkAsSuperAttributeTranslatorFunctionPlugin;
71
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\MeasureUnitToIntTranslatorFunctionPlugin;
72
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\MoveLocalizedAttributesToAttributesTranslatorFunctionPlugin;
73
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\PriceSelectorTranslatorFunctionPlugin;
74
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\SkipItemsWithoutParentTranslatorFunctionPlugin;
75
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\ValuesToAttributesTranslatorFunctionPlugin;
76
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\TranslatorFunction\ValuesToLocalizedAttributesTranslatorFunctionPlugin;
77
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Communication\Plugin\Validator\ProductAbstractExistValidatorPlugin;
78
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Dependency\Facade\AkeneoPimMiddlewareConnectorToProcessFacadeBridge;
79
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Dependency\Facade\AkeneoPimMiddlewareConnectorToProductFacadeBridge;
80
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Dependency\Facade\AkeneoPimMiddlewareConnectorToUtilTextBridge;
81
use SprykerEco\Zed\AkeneoPimMiddlewareConnector\Dependency\Service\AkeneoPimMiddlewareConnectorToAkeneoPimServiceBridge;
82
use SprykerMiddleware\Zed\Process\Communication\Plugin\Iterator\NullIteratorPlugin;
83
use SprykerMiddleware\Zed\Process\Communication\Plugin\Log\MiddlewareLoggerConfigPlugin;
84
use SprykerMiddleware\Zed\Process\Communication\Plugin\Stream\JsonInputStreamPlugin;
85
use SprykerMiddleware\Zed\Process\Communication\Plugin\Stream\JsonOutputStreamPlugin;
86
use SprykerMiddleware\Zed\Process\Communication\Plugin\Stream\JsonRowInputStreamPlugin;
87
use SprykerMiddleware\Zed\Process\Communication\Plugin\Stream\JsonRowOutputStreamPlugin;
88
use SprykerMiddleware\Zed\Process\Communication\Plugin\StreamReaderStagePlugin;
89
use SprykerMiddleware\Zed\Process\Communication\Plugin\StreamWriterStagePlugin;
90
use SprykerMiddleware\Zed\Process\Dependency\Plugin\Log\MiddlewareLoggerConfigPluginInterface;
91
92
class AkeneoPimMiddlewareConnectorDependencyProvider extends AbstractBundleDependencyProvider
93
{
94
    public const SERVICE_AKENEO_PIM = 'SERVICE_AKENEO_PIM';
95
    public const SERVICE_UTIL_TEXT = 'SERVICE_UTIL_TEXT';
96
    public const FACADE_PROCESS = 'FACADE_PROCESS';
97
    public const FACADE_PRODUCT = 'FACADE_PRODUCT';
98
99
    public const DEFAULT_AKENEO_PIM_MIDDLEWARE_PROCESSES = 'DEFAULT_AKENEO_PIM_MIDDLEWARE_PROCESSES';
100
    public const DEFAULT_AKENEO_PIM_MIDDLEWARE_TRANSLATOR_FUNCTIONS = 'DEFAULT_AKENEO_PIM_MIDDLEWARE_TRANSLATOR_FUNCTIONS';
101
102
    public const PRODUCT_ABSTRACT_QUERY = 'PRODUCT_ABSTRACT_QUERY';
103
104
    public const URL_GENERATOR_STRATEGY = 'URL_GENERATOR_STRATEGY';
105
106
    public const AKENEO_PIM_MIDDLEWARE_PROCESSES = 'AKENEO_PIM_MIDDLEWARE_PROCESSES';
107
    public const AKENEO_PIM_MIDDLEWARE_LOGGER_CONFIG = 'AKENEO_PIM_MIDDLEWARE_LOGGER_CONFIG';
108
    public const AKENEO_PIM_MIDDLEWARE_TRANSLATOR_FUNCTIONS = 'AKENEO_PIM_MIDDLEWARE_TRANSLATOR_FUNCTIONS';
109
    public const AKENEO_PIM_MIDDLEWARE_VALIDATORS = 'AKENEO_PIM_MIDDLEWARE_VALIDATORS';
110
    public const AKENEO_PIM_MIDDLEWARE_CATEGORY_IMPORTER_PLUGIN = 'AKENEO_PIM_MIDDLEWARE_CATEGORY_IMPORTER_PLUGIN';
111
    public const AKENEO_PIM_MIDDLEWARE_ATTRIBUTE_IMPORTER_PLUGIN = 'AKENEO_PIM_MIDDLEWARE_ATTRIBUTE_IMPORTER_PLUGIN';
112
    public const AKENEO_PIM_MIDDLEWARE_PRODUCT_ABSTRACT_IMPORTER_PLUGIN = 'AKENEO_PIM_MIDDLEWARE_PRODUCT_ABSTRACT_IMPORTER_PLUGIN';
113
    public const AKENEO_PIM_MIDDLEWARE_PRODUCT_CONCRETE_IMPORTER_PLUGIN = 'AKENEO_PIM_MIDDLEWARE_PRODUCT_CONCRETE_IMPORTER_PLUGIN';
114
    public const AKENEO_PIM_MIDDLEWARE_PRODUCT_PRICE_IMPORTER_PLUGIN = 'AKENEO_PIM_MIDDLEWARE_PRODUCT_PRICE_IMPORTER_PLUGIN';
115
    public const AKENEO_PIM_MIDDLEWARE_PRODUCT_ABSTRACT_STORES_IMPORTER_PLUGIN = 'AKENEO_PIM_MIDDLEWARE_PRODUCT_ABSTRACT_STORES_IMPORTER_PLUGIN';
116
117
    public const ATTRIBUTE_IMPORT_INPUT_STREAM_PLUGIN = 'ATTRIBUTE_IMPORT_INPUT_STREAM_PLUGIN';
118
    public const ATTRIBUTE_IMPORT_OUTPUT_STREAM_PLUGIN = 'ATTRIBUTE_IMPORT_OUTPUT_STREAM_PLUGIN';
119
    public const ATTRIBUTE_IMPORT_ITERATOR_PLUGIN = 'ATTRIBUTE_IMPORT_ITERATOR_PLUGIN';
120
    public const ATTRIBUTE_IMPORT_STAGE_PLUGINS = 'ATTRIBUTE_IMPORT_STAGE_PLUGINS';
121
    public const ATTRIBUTE_IMPORT_PRE_PROCESSOR_PLUGINS = 'ATTRIBUTE_IMPORT_PRE_PROCESSOR_PLUGINS';
122
    public const ATTRIBUTE_IMPORT_POST_PROCESSOR_PLUGINS = 'ATTRIBUTE_IMPORT_POST_PROCESSOR_PLUGINS';
123
124
    public const ATTRIBUTE_MAP_INPUT_STREAM_PLUGIN = 'ATTRIBUTE_MAP_INPUT_STREAM_PLUGIN';
125
    public const ATTRIBUTE_MAP_OUTPUT_STREAM_PLUGIN = 'ATTRIBUTE_MAP_OUTPUT_STREAM_PLUGIN';
126
    public const ATTRIBUTE_MAP_ITERATOR_PLUGIN = 'ATTRIBUTE_MAP_ITERATOR_PLUGIN';
127
    public const ATTRIBUTE_MAP_STAGE_PLUGINS = 'ATTRIBUTE_MAP_STAGE_PLUGINS';
128
    public const ATTRIBUTE_MAP_PRE_PROCESSOR_PLUGINS = 'ATTRIBUTE_MAP_PRE_PROCESSOR_PLUGINS';
129
    public const ATTRIBUTE_MAP_POST_PROCESSOR_PLUGINS = 'ATTRIBUTE_MAP_POST_PROCESSOR_PLUGINS';
130
131
    public const CATEGORY_IMPORT_INPUT_STREAM_PLUGIN = 'CATEGORY_IMPORT_INPUT_STREAM_PLUGIN';
132
    public const CATEGORY_IMPORT_OUTPUT_STREAM_PLUGIN = 'CATEGORY_IMPORT_OUTPUT_STREAM_PLUGIN';
133
    public const CATEGORY_IMPORT_ITERATOR_PLUGIN = 'CATEGORY_IMPORT_ITERATOR_PLUGIN';
134
    public const CATEGORY_IMPORT_STAGE_PLUGINS = 'CATEGORY_IMPORT_STAGE_PLUGINS';
135
    public const CATEGORY_IMPORT_PRE_PROCESSOR_PLUGINS = 'CATEGORY_IMPORT_PRE_PROCESSOR_PLUGINS';
136
    public const CATEGORY_IMPORT_POST_PROCESSOR_PLUGINS = 'CATEGORY_IMPORT_POST_PROCESSOR_PLUGINS';
137
138
    public const LOCALE_MAP_IMPORT_INPUT_STREAM_PLUGIN = 'LOCALE_MAP_IMPORT_INPUT_STREAM_PLUGIN';
139
    public const LOCALE_MAP_IMPORT_OUTPUT_STREAM_PLUGIN = 'LOCALE_MAP_IMPORT_OUTPUT_STREAM_PLUGIN';
140
    public const LOCALE_MAP_IMPORT_ITERATOR_PLUGIN = 'LOCALE_MAP_IMPORT_ITERATOR_PLUGIN';
141
    public const LOCALE_MAP_IMPORT_STAGE_PLUGINS = 'LOCALE_MAP_IMPORT_STAGE_PLUGINS';
142
    public const LOCALE_MAP_IMPORT_PRE_PROCESSOR_PLUGINS = 'LOCALE_MAP_IMPORT_PRE_PROCESSOR_PLUGINS';
143
    public const LOCALE_MAP_IMPORT_POST_PROCESSOR_PLUGINS = 'LOCALE_MAP_IMPORT_POST_PROCESSOR_PLUGINS';
144
145
    public const PRODUCT_IMPORT_INPUT_STREAM_PLUGIN = 'PRODUCT_IMPORT_INPUT_STREAM_PLUGIN';
146
    public const PRODUCT_IMPORT_OUTPUT_STREAM_PLUGIN = 'PRODUCT_IMPORT_OUTPUT_STREAM_PLUGIN';
147
    public const PRODUCT_IMPORT_ITERATOR_PLUGIN = 'PRODUCT_IMPORT_ITERATOR_PLUGIN';
148
    public const PRODUCT_IMPORT_STAGE_PLUGINS = 'PRODUCT_IMPORT_STAGE_PLUGINS';
149
    public const PRODUCT_IMPORT_PRE_PROCESSOR_PLUGINS = 'PRODUCT_IMPORT_PRE_PROCESSOR_PLUGINS';
150
    public const PRODUCT_IMPORT_POST_PROCESSOR_PLUGINS = 'PRODUCT_IMPORT_POST_PROCESSOR_PLUGINS';
151
152
    public const PRODUCT_MODEL_IMPORT_INPUT_STREAM_PLUGIN = 'PRODUCT_MODEL_IMPORT_INPUT_STREAM_PLUGIN';
153
    public const PRODUCT_MODEL_IMPORT_OUTPUT_STREAM_PLUGIN = 'PRODUCT_MODEL_IMPORT_OUTPUT_STREAM_PLUGIN';
154
    public const PRODUCT_MODEL_IMPORT_ITERATOR_PLUGIN = 'PRODUCT_MODEL_IMPORT_ITERATOR_PLUGIN';
155
    public const PRODUCT_MODEL_IMPORT_STAGE_PLUGINS = 'PRODUCT_MODEL_IMPORT_STAGE_PLUGINS';
156
    public const PRODUCT_MODEL_IMPORT_PRE_PROCESSOR_PLUGINS = 'PRODUCT_MODEL_IMPORT_PRE_PROCESSOR_PLUGINS';
157
    public const PRODUCT_MODEL_IMPORT_POST_PROCESSOR_PLUGINS = 'PRODUCT_MODEL_IMPORT_POST_PROCESSOR_PLUGINS';
158
159
    public const PRODUCT_PREPARATION_INPUT_STREAM_PLUGIN = 'PRODUCT_PREPARATION_INPUT_STREAM_PLUGIN';
160
    public const PRODUCT_PREPARATION_OUTPUT_STREAM_PLUGIN = 'PRODUCT_PREPARATION_OUTPUT_STREAM_PLUGIN';
161
    public const PRODUCT_PREPARATION_ITERATOR_PLUGIN = 'PRODUCT_PREPARATION_ITERATOR_PLUGIN';
162
    public const PRODUCT_PREPARATION_STAGE_PLUGINS = 'PRODUCT_PREPARATION_STAGE_PLUGINS';
163
    public const PRODUCT_PREPARATION_PRE_PROCESSOR_PLUGINS = 'PRODUCT_PREPARATION_PRE_PROCESSOR_PLUGINS';
164
    public const PRODUCT_PREPARATION_POST_PROCESSOR_PLUGINS = 'PRODUCT_PREPARATION_POST_PROCESSOR_PLUGINS';
165
166
    public const PRODUCT_MODEL_PREPARATION_INPUT_STREAM_PLUGIN = 'PRODUCT_MODEL_PREPARATION_INPUT_STREAM_PLUGIN';
167
    public const PRODUCT_MODEL_PREPARATION_OUTPUT_STREAM_PLUGIN = 'PRODUCT_MODEL_PREPARATION_OUTPUT_STREAM_PLUGIN';
168
    public const PRODUCT_MODEL_PREPARATION_ITERATOR_PLUGIN = 'PRODUCT_MODEL_PREPARATION_ITERATOR_PLUGIN';
169
    public const PRODUCT_MODEL_PREPARATION_STAGE_PLUGINS = 'PRODUCT_MODEL_PREPARATION_STAGE_PLUGINS';
170
    public const PRODUCT_MODEL_PREPARATION_PRE_PROCESSOR_PLUGINS = 'PRODUCT_MODEL_PREPARATION_PRE_PROCESSOR_PLUGINS';
171
    public const PRODUCT_MODEL_PREPARATION_POST_PROCESSOR_PLUGINS = 'PRODUCT_MODEL_PREPARATION_POST_PROCESSOR_PLUGINS';
172
173
    public const SUPER_ATTRIBUTE_IMPORT_INPUT_STREAM_PLUGIN = 'SUPER_ATTRIBUTE_IMPORT_INPUT_STREAM_PLUGIN';
174
    public const SUPER_ATTRIBUTE_IMPORT_OUTPUT_STREAM_PLUGIN = 'SUPER_ATTRIBUTE_IMPORT_OUTPUT_STREAM_PLUGIN';
175
    public const SUPER_ATTRIBUTE_IMPORT_ITERATOR_PLUGIN = 'SUPER_ATTRIBUTE_IMPORT_ITERATOR_PLUGIN';
176
    public const SUPER_ATTRIBUTE_IMPORT_STAGE_PLUGINS = 'SUPER_ATTRIBUTE_IMPORT_STAGE_PLUGINS';
177
    public const SUPER_ATTRIBUTE_IMPORT_PRE_PROCESSOR_PLUGINS = 'SUPER_ATTRIBUTE_IMPORT_PRE_PROCESSOR_PLUGINS';
178
    public const SUPER_ATTRIBUTE_IMPORT_POST_PROCESSOR_PLUGINS = 'SUPER_ATTRIBUTE_IMPORT_POST_PROCESSOR_PLUGINS';
179
180
    public const TAX_SET_MAP_IMPORT_INPUT_STREAM_PLUGIN = 'TAX_SET_MAP_IMPORT_INPUT_STREAM_PLUGIN';
181
    public const TAX_SET_MAP_IMPORT_OUTPUT_STREAM_PLUGIN = 'TAX_SET_MAP_IMPORT_OUTPUT_STREAM_PLUGIN';
182
    public const TAX_SET_MAP_IMPORT_ITERATOR_PLUGIN = 'TAX_SET_MAP_IMPORT_ITERATOR_PLUGIN';
183
    public const TAX_SET_MAP_IMPORT_STAGE_PLUGINS = 'TAX_SET_MAP_IMPORT_STAGE_PLUGINS';
184
    public const TAX_SET_MAP_IMPORT_PRE_PROCESSOR_PLUGINS = 'TAX_SET_MAP_IMPORT_PRE_PROCESSOR_PLUGINS';
185
    public const TAX_SET_MAP_IMPORT_POST_PROCESSOR_PLUGINS = 'TAX_SET_MAP_IMPORT_POST_PROCESSOR_PLUGINS';
186
187
    public const DEFAULT_CATEGORY_IMPORT_STAGE_PLUGINS = 'DEFAULT_CATEGORY_IMPORT_STAGE_PLUGINS';
188
    public const DEFAULT_PRODUCT_MODEL_IMPORT_STAGE_PLUGINS = 'DEFAULT_PRODUCT_MODEL_IMPORT_STAGE_PLUGINS';
189
    public const DEFAULT_PRODUCT_IMPORT_STAGE_PLUGINS = 'DEFAULT_PRODUCT_IMPORT_STAGE_PLUGINS';
190
191
    /**
192
     * @param \Spryker\Zed\Kernel\Container $container
193
     *
194
     * @return \Spryker\Zed\Kernel\Container
195
     */
196
    public function provideCommunicationLayerDependencies(Container $container): Container
197
    {
198
        $container = $this->addServiceAkeneoPim($container);
199
        $container = $this->addFacadeProcess($container);
200
        $container = $this->addFacadeProduct($container);
201
        $container = $this->addServiceUtilText($container);
202
        $container = $this->addCategoryDataImporterPlugin($container);
203
        $container = $this->addAttributeDataImporterPlugin($container);
204
        $container = $this->addProductAbstractDataImporterPlugin($container);
205
        $container = $this->addProductConcreteDataImporterPlugin($container);
206
        $container = $this->addDefaultLoggerConfigPlugin($container);
207
        $container = $this->addAkeneoPimProcesses($container);
208
        $container = $this->addDefaultAkeneoPimProcesses($container);
209
        $container = $this->addAkeneoPimTranslatorFunctions($container);
210
        $container = $this->addAkeneoPimValidators($container);
211
        $container = $this->addDefaultAkeneoPimTranslatorFunctions($container);
212
        $container = $this->addAttributeImportProcessPlugins($container);
213
        $container = $this->addAttributeMapProcessPlugins($container);
214
        $container = $this->addCategoryImportProcessPlugins($container);
215
        $container = $this->addLocaleMapImportProcessPlugins($container);
216
        $container = $this->addProductImportProcessPlugins($container);
217
        $container = $this->addProductModelImportProcessPlugins($container);
218
        $container = $this->addProductModelPreparationProcessPlugins($container);
219
        $container = $this->addProductPreparationProcessPlugins($container);
220
        $container = $this->addTaxSetMapImportProcessPlugins($container);
221
        $container = $this->addSuperAttributeImportProcessPlugins($container);
222
        $container = $this->addDefaultCategoryImportStagePlugins($container);
223
        $container = $this->addDefaultProductImportStagePlugins($container);
224
        $container = $this->addDefaultProductModelImportStagePlugins($container);
225
        $container = $this->addProductPriceDataImporterPlugin($container);
226
        $container = $this->addProductAbstractStoresDataImporterPlugin($container);
227
228
        return $container;
229
    }
230
231
    /**
232
     * @param \Spryker\Zed\Kernel\Container $container
233
     *
234
     * @return \Spryker\Zed\Kernel\Container
235
     */
236
    public function providePersistenceLayerDependencies(Container $container): Container
237
    {
238
        $container = $this->addProductAbstractQuery($container);
239
240
        return $container;
241
    }
242
243
    /**
244
     * @param \Spryker\Zed\Kernel\Container $container
245
     *
246
     * @return \Spryker\Zed\Kernel\Container
247
     */
248
    protected function addAkeneoPimProcesses(Container $container): Container
249
    {
250
        $container[static::AKENEO_PIM_MIDDLEWARE_PROCESSES] = function () {
251
            return $this->getAkeneoPimProcessesPlugins();
252
        };
253
254
        return $container;
255
    }
256
257
    /**
258
     * @param \Spryker\Zed\Kernel\Container $container
259
     *
260
     * @return \Spryker\Zed\Kernel\Container
261
     */
262
    protected function addServiceAkeneoPim(Container $container): Container
263
    {
264
        $container[static::SERVICE_AKENEO_PIM] = function (Container $container) {
265
            return new AkeneoPimMiddlewareConnectorToAkeneoPimServiceBridge($container->getLocator()->akeneoPim()->service());
266
        };
267
268
        return $container;
269
    }
270
271
    /**
272
     * @param \Spryker\Zed\Kernel\Container $container
273
     *
274
     * @return \Spryker\Zed\Kernel\Container
275
     */
276
    protected function addFacadeProcess(Container $container): Container
277
    {
278
        $container[static::FACADE_PROCESS] = function (Container $container) {
279
            return new AkeneoPimMiddlewareConnectorToProcessFacadeBridge($container->getLocator()->process()->facade());
280
        };
281
282
        return $container;
283
    }
284
285
    /**
286
     * @param \Spryker\Zed\Kernel\Container $container
287
     *
288
     * @return \Spryker\Zed\Kernel\Container
289
     */
290
    protected function addFacadeProduct(Container $container): Container
291
    {
292
        $container[static::FACADE_PRODUCT] = function (Container $container) {
293
            return new AkeneoPimMiddlewareConnectorToProductFacadeBridge($container->getLocator()->product()->facade());
294
        };
295
296
        return $container;
297
    }
298
299
    /**
300
     * @param \Spryker\Zed\Kernel\Container $container
301
     *
302
     * @return \Spryker\Zed\Kernel\Container
303
     */
304
    protected function addServiceUtilText(Container $container): Container
305
    {
306
        $container[static::SERVICE_UTIL_TEXT] = function (Container $container) {
307
            return new AkeneoPimMiddlewareConnectorToUtilTextBridge($container->getLocator()->utilText()->service());
308
        };
309
310
        return $container;
311
    }
312
313
    /**
314
     * @return \SprykerMiddleware\Zed\Process\Dependency\Plugin\Configuration\ProcessConfigurationPluginInterface[]
315
     */
316
    protected function getAkeneoPimProcessesPlugins(): array
317
    {
318
        return [
319
            new AttributeImportConfigurationPlugin(),
320
            new AttributeMapConfigurationPlugin(),
321
            new CategoryImportConfigurationPlugin(),
322
            new LocaleMapImportConfigurationPlugin(),
323
            new ProductImportConfigurationPlugin(),
324
            new ProductModelImportConfigurationPlugin(),
325
            new ProductModelPreparationConfigurationPlugin(),
326
            new ProductPreparationConfigurationPlugin(),
327
            new SuperAttributeImportConfigurationPlugin(),
328
            new TaxSetMapImportConfigurationPlugin(),
329
        ];
330
    }
331
332
    /**
333
     * @param \Spryker\Zed\Kernel\Container $container
334
     *
335
     * @return \Spryker\Zed\Kernel\Container
336
     */
337
    protected function addDefaultAkeneoPimProcesses(Container $container): Container
338
    {
339
        $container[static::DEFAULT_AKENEO_PIM_MIDDLEWARE_PROCESSES] = function () {
340
            return $this->getDefaultAkeneoPimProcessesPlugins();
341
        };
342
343
        return $container;
344
    }
345
346
    /**
347
     * @return \SprykerMiddleware\Zed\Process\Dependency\Plugin\Configuration\ProcessConfigurationPluginInterface[]
348
     */
349
    protected function getDefaultAkeneoPimProcessesPlugins(): array
350
    {
351
        return [
352
            new DefaultCategoryImportConfigurationPlugin(),
353
            new DefaultProductImportConfigurationPlugin(),
354
            new DefaultProductModelImportConfigurationPlugin(),
355
        ];
356
    }
357
358
    /**
359
     * @param \Spryker\Zed\Kernel\Container $container
360
     *
361
     * @return \Spryker\Zed\Kernel\Container
362
     */
363
    protected function addDefaultLoggerConfigPlugin($container): Container
364
    {
365
        $container[static::AKENEO_PIM_MIDDLEWARE_LOGGER_CONFIG] = function () {
366
            return $this->getDefaultLoggerConfigPlugin();
367
        };
368
369
        return $container;
370
    }
371
372
    /**
373
     * @return \SprykerMiddleware\Zed\Process\Dependency\Plugin\Log\MiddlewareLoggerConfigPluginInterface
374
     */
375
    protected function getDefaultLoggerConfigPlugin(): MiddlewareLoggerConfigPluginInterface
376
    {
377
        return new MiddlewareLoggerConfigPlugin();
378
    }
379
380
    /**
381
     * @param \Spryker\Zed\Kernel\Container $container
382
     *
383
     * @return \Spryker\Zed\Kernel\Container
384
     */
385
    protected function addAttributeImportProcessPlugins(Container $container): Container
386
    {
387
        $container[static::ATTRIBUTE_IMPORT_INPUT_STREAM_PLUGIN] = function () {
388
            return new AttributeAkeneoApiStreamPlugin();
389
        };
390
        $container[static::ATTRIBUTE_IMPORT_OUTPUT_STREAM_PLUGIN] = function () {
391
            return new AttributeWriteStreamPlugin();
392
        };
393
394
        $container[static::ATTRIBUTE_IMPORT_ITERATOR_PLUGIN] = function () {
395
            return new NullIteratorPlugin();
396
        };
397
398
        $container[static::ATTRIBUTE_IMPORT_STAGE_PLUGINS] = function () {
399
            return [
400
                new StreamReaderStagePlugin(),
401
                new AttributeMapPreparationMapperStagePlugin(),
402
                new AttributeMapTranslationStagePlugin(),
403
                new AttributeMapMapperStagePlugin(),
404
                new StreamWriterStagePlugin(),
405
            ];
406
        };
407
408
        $container[static::ATTRIBUTE_IMPORT_PRE_PROCESSOR_PLUGINS] = function () {
409
            return [];
410
        };
411
412
        $container[static::ATTRIBUTE_IMPORT_POST_PROCESSOR_PLUGINS] = function () {
413
            return [];
414
        };
415
416
        return $container;
417
    }
418
419
    /**
420
     * @param \Spryker\Zed\Kernel\Container $container
421
     *
422
     * @return \Spryker\Zed\Kernel\Container
423
     */
424
    protected function addAttributeMapProcessPlugins(Container $container): Container
425
    {
426
        $container[static::ATTRIBUTE_MAP_INPUT_STREAM_PLUGIN] = function () {
427
            return new AttributeAkeneoApiStreamPlugin();
428
        };
429
        $container[static::ATTRIBUTE_MAP_OUTPUT_STREAM_PLUGIN] = function () {
430
            return new JsonOutputStreamPlugin();
431
        };
432
433
        $container[static::ATTRIBUTE_MAP_ITERATOR_PLUGIN] = function () {
434
            return new NullIteratorPlugin();
435
        };
436
437
        $container[static::ATTRIBUTE_MAP_STAGE_PLUGINS] = function () {
438
            return [
439
                new StreamReaderStagePlugin(),
440
                new AttributeMapPreparationMapperStagePlugin(),
441
                new AttributeMapTranslationStagePlugin(),
442
                new AttributeMapMapperStagePlugin(),
443
                new StreamWriterStagePlugin(),
444
            ];
445
        };
446
447
        $container[static::ATTRIBUTE_MAP_PRE_PROCESSOR_PLUGINS] = function () {
448
            return [];
449
        };
450
451
        $container[static::ATTRIBUTE_MAP_POST_PROCESSOR_PLUGINS] = function () {
452
            return [];
453
        };
454
455
        return $container;
456
    }
457
458
    /**
459
     * @param \Spryker\Zed\Kernel\Container $container
460
     *
461
     * @return \Spryker\Zed\Kernel\Container
462
     */
463
    protected function addCategoryImportProcessPlugins(Container $container): Container
464
    {
465
        $container[static::CATEGORY_IMPORT_INPUT_STREAM_PLUGIN] = function () {
466
            return new CategoryAkeneoApiStreamPlugin();
467
        };
468
        $container[static::CATEGORY_IMPORT_OUTPUT_STREAM_PLUGIN] = function () {
469
            return new CategoryWriteStreamPlugin();
470
        };
471
472
        $container[static::CATEGORY_IMPORT_ITERATOR_PLUGIN] = function () {
473
            return new NullIteratorPlugin();
474
        };
475
476
        $container[static::CATEGORY_IMPORT_STAGE_PLUGINS] = function () {
477
            return [
478
                new StreamReaderStagePlugin(),
479
                new CategoryMapperStagePlugin(),
480
                new CategoryImportTranslationStagePlugin(),
481
                new StreamWriterStagePlugin(),
482
            ];
483
        };
484
485
        $container[static::CATEGORY_IMPORT_PRE_PROCESSOR_PLUGINS] = function () {
486
            return [];
487
        };
488
489
        $container[static::CATEGORY_IMPORT_POST_PROCESSOR_PLUGINS] = function () {
490
            return [];
491
        };
492
493
        return $container;
494
    }
495
496
    /**
497
     * @param \Spryker\Zed\Kernel\Container $container
498
     *
499
     * @return \Spryker\Zed\Kernel\Container
500
     */
501
    protected function addLocaleMapImportProcessPlugins(Container $container): Container
502
    {
503
        $container[static::LOCALE_MAP_IMPORT_INPUT_STREAM_PLUGIN] = function () {
504
            return new LocaleStreamPlugin();
505
        };
506
        $container[static::LOCALE_MAP_IMPORT_OUTPUT_STREAM_PLUGIN] = function () {
507
            return new JsonObjectWriteStreamPlugin();
508
        };
509
510
        $container[static::LOCALE_MAP_IMPORT_ITERATOR_PLUGIN] = function () {
511
            return new NullIteratorPlugin();
512
        };
513
514
        $container[static::LOCALE_MAP_IMPORT_STAGE_PLUGINS] = function () {
515
            return [
516
                new StreamReaderStagePlugin(),
517
                new LocaleMapperStagePlugin(),
518
                new StreamWriterStagePlugin(),
519
            ];
520
        };
521
522
        $container[static::LOCALE_MAP_IMPORT_PRE_PROCESSOR_PLUGINS] = function () {
523
            return [];
524
        };
525
526
        $container[static::LOCALE_MAP_IMPORT_POST_PROCESSOR_PLUGINS] = function () {
527
            return [];
528
        };
529
530
        return $container;
531
    }
532
533
    /**
534
     * @param \Spryker\Zed\Kernel\Container $container
535
     *
536
     * @return \Spryker\Zed\Kernel\Container
537
     */
538
    protected function addProductImportProcessPlugins(Container $container): Container
539
    {
540
        $container[static::PRODUCT_IMPORT_INPUT_STREAM_PLUGIN] = function () {
541
            return new JsonRowInputStreamPlugin();
542
        };
543
        $container[static::PRODUCT_IMPORT_OUTPUT_STREAM_PLUGIN] = function () {
544
            return new ProductConcreteWriteStreamPlugin();
545
        };
546
547
        $container[static::PRODUCT_IMPORT_ITERATOR_PLUGIN] = function () {
548
            return new NullIteratorPlugin();
549
        };
550
551
        $container[static::PRODUCT_IMPORT_STAGE_PLUGINS] = function () {
552
            return [
553
                new StreamReaderStagePlugin(),
554
                new DefaultProductImportValidatorStagePlugin(),
555
                new ProductImportTranslationStagePlugin(),
556
                new ProductMapperStagePlugin(),
557
                new StreamWriterStagePlugin(),
558
            ];
559
        };
560
561
        $container[static::PRODUCT_IMPORT_PRE_PROCESSOR_PLUGINS] = function () {
562
            return [];
563
        };
564
565
        $container[static::PRODUCT_IMPORT_POST_PROCESSOR_PLUGINS] = function () {
566
            return [];
567
        };
568
569
        return $container;
570
    }
571
572
    /**
573
     * @param \Spryker\Zed\Kernel\Container $container
574
     *
575
     * @return \Spryker\Zed\Kernel\Container
576
     */
577
    protected function addProductModelImportProcessPlugins(Container $container): Container
578
    {
579
        $container[static::PRODUCT_MODEL_IMPORT_INPUT_STREAM_PLUGIN] = function () {
580
            return new JsonInputStreamPlugin();
581
        };
582
        $container[static::PRODUCT_MODEL_IMPORT_OUTPUT_STREAM_PLUGIN] = function () {
583
            return new ProductAbstractWriteStreamPlugin();
584
        };
585
586
        $container[static::PRODUCT_MODEL_IMPORT_ITERATOR_PLUGIN] = function () {
587
            return new NullIteratorPlugin();
588
        };
589
590
        $container[static::PRODUCT_MODEL_IMPORT_STAGE_PLUGINS] = function () {
591
            return [
592
                new StreamReaderStagePlugin(),
593
                new DefaultProductModelImportValidatorStagePlugin(),
594
                new ProductModelImportTranslationStagePlugin(),
595
                new ProductModelImportMapperStagePlugin(),
596
                new StreamWriterStagePlugin(),
597
            ];
598
        };
599
600
        $container[static::PRODUCT_MODEL_IMPORT_PRE_PROCESSOR_PLUGINS] = function () {
601
            return [];
602
        };
603
604
        $container[static::PRODUCT_MODEL_IMPORT_POST_PROCESSOR_PLUGINS] = function () {
605
            return [];
606
        };
607
608
        return $container;
609
    }
610
611
    /**
612
     * @param \Spryker\Zed\Kernel\Container $container
613
     *
614
     * @return \Spryker\Zed\Kernel\Container
615
     */
616
    protected function addProductPreparationProcessPlugins(Container $container): Container
617
    {
618
        $container[static::PRODUCT_PREPARATION_INPUT_STREAM_PLUGIN] = function () {
619
            return new ProductAkeneoApiStreamPlugin();
620
        };
621
        $container[static::PRODUCT_PREPARATION_OUTPUT_STREAM_PLUGIN] = function () {
622
            return new JsonRowOutputStreamPlugin();
623
        };
624
625
        $container[static::PRODUCT_PREPARATION_ITERATOR_PLUGIN] = function () {
626
            return new NullIteratorPlugin();
627
        };
628
629
        $container[static::PRODUCT_PREPARATION_STAGE_PLUGINS] = function () {
630
            return [
631
                new StreamReaderStagePlugin(),
632
                new StreamWriterStagePlugin(),
633
            ];
634
        };
635
636
        $container[static::PRODUCT_PREPARATION_PRE_PROCESSOR_PLUGINS] = function () {
637
            return [];
638
        };
639
640
        $container[static::PRODUCT_PREPARATION_POST_PROCESSOR_PLUGINS] = function () {
641
            return [];
642
        };
643
644
        return $container;
645
    }
646
647
    /**
648
     * @param \Spryker\Zed\Kernel\Container $container
649
     *
650
     * @return \Spryker\Zed\Kernel\Container
651
     */
652
    protected function addProductModelPreparationProcessPlugins(Container $container): Container
653
    {
654
        $container[static::PRODUCT_MODEL_PREPARATION_INPUT_STREAM_PLUGIN] = function () {
655
            return new ProductModelAkeneoApiStreamPlugin();
656
        };
657
        $container[static::PRODUCT_MODEL_PREPARATION_OUTPUT_STREAM_PLUGIN] = function () {
658
            return new JsonOutputStreamPlugin();
659
        };
660
661
        $container[static::PRODUCT_MODEL_PREPARATION_ITERATOR_PLUGIN] = function () {
662
            return new NullIteratorPlugin();
663
        };
664
665
        $container[static::PRODUCT_MODEL_PREPARATION_STAGE_PLUGINS] = function () {
666
            return [
667
                new StreamReaderStagePlugin(),
668
                new StreamWriterStagePlugin(),
669
            ];
670
        };
671
672
        $container[static::PRODUCT_MODEL_PREPARATION_PRE_PROCESSOR_PLUGINS] = function () {
673
            return [];
674
        };
675
676
        $container[static::PRODUCT_MODEL_PREPARATION_POST_PROCESSOR_PLUGINS] = function () {
677
            return [];
678
        };
679
680
        return $container;
681
    }
682
683
    /**
684
     * @param \Spryker\Zed\Kernel\Container $container
685
     *
686
     * @return \Spryker\Zed\Kernel\Container
687
     */
688
    protected function addTaxSetMapImportProcessPlugins(Container $container): Container
689
    {
690
        $container[static::TAX_SET_MAP_IMPORT_INPUT_STREAM_PLUGIN] = function () {
691
            return new TaxSetStreamPlugin();
692
        };
693
        $container[static::TAX_SET_MAP_IMPORT_OUTPUT_STREAM_PLUGIN] = function () {
694
            return new JsonObjectWriteStreamPlugin();
695
        };
696
697
        $container[static::TAX_SET_MAP_IMPORT_ITERATOR_PLUGIN] = function () {
698
            return new NullIteratorPlugin();
699
        };
700
701
        $container[static::TAX_SET_MAP_IMPORT_STAGE_PLUGINS] = function () {
702
            return [
703
                new StreamReaderStagePlugin(),
704
                new TaxSetMapperStagePlugin(),
705
                new StreamWriterStagePlugin(),
706
            ];
707
        };
708
709
        $container[static::TAX_SET_MAP_IMPORT_PRE_PROCESSOR_PLUGINS] = function () {
710
            return [];
711
        };
712
713
        $container[static::TAX_SET_MAP_IMPORT_POST_PROCESSOR_PLUGINS] = function () {
714
            return [];
715
        };
716
717
        return $container;
718
    }
719
720
    /**
721
     * @param \Spryker\Zed\Kernel\Container $container
722
     *
723
     * @return \Spryker\Zed\Kernel\Container
724
     */
725
    protected function addSuperAttributeImportProcessPlugins(Container $container): Container
726
    {
727
        $container[static::SUPER_ATTRIBUTE_IMPORT_INPUT_STREAM_PLUGIN] = function () {
728
            return new SuperAttributesAkeneoApiStreamPlugin();
729
        };
730
731
        $container[static::SUPER_ATTRIBUTE_IMPORT_OUTPUT_STREAM_PLUGIN] = function () {
732
            return new JsonSuperAttributeWriteStreamPlugin();
733
        };
734
735
        $container[static::SUPER_ATTRIBUTE_IMPORT_ITERATOR_PLUGIN] = function () {
736
            return new NullIteratorPlugin();
737
        };
738
739
        $container[static::SUPER_ATTRIBUTE_IMPORT_STAGE_PLUGINS] = function () {
740
            return [
741
                new StreamReaderStagePlugin(),
742
                new StreamWriterStagePlugin(),
743
            ];
744
        };
745
746
        $container[static::SUPER_ATTRIBUTE_IMPORT_PRE_PROCESSOR_PLUGINS] = function () {
747
            return [];
748
        };
749
750
        $container[static::SUPER_ATTRIBUTE_IMPORT_POST_PROCESSOR_PLUGINS] = function () {
751
            return [];
752
        };
753
754
        return $container;
755
    }
756
757
    /**
758
     * @param \Spryker\Zed\Kernel\Container $container
759
     *
760
     * @return \Spryker\Zed\Kernel\Container
761
     */
762
    protected function addAkeneoPimTranslatorFunctions($container): Container
763
    {
764
        $container[static::AKENEO_PIM_MIDDLEWARE_TRANSLATOR_FUNCTIONS] = function () {
765
            return $this->getAkeneoPimTranslatorFunctionPlugins();
766
        };
767
768
        return $container;
769
    }
770
771
    /**
772
     * @param \Spryker\Zed\Kernel\Container $container
773
     *
774
     * @return \Spryker\Zed\Kernel\Container
775
     */
776
    protected function addAkeneoPimValidators($container): Container
777
    {
778
        $container[static::AKENEO_PIM_MIDDLEWARE_VALIDATORS] = function () {
779
            return $this->getAkeneoPimValidatorPlugins();
780
        };
781
782
        return $container;
783
    }
784
785
    /**
786
     * @return \SprykerMiddleware\Zed\Process\Dependency\Plugin\TranslatorFunction\TranslatorFunctionPluginInterface[]
787
     */
788
    protected function getAkeneoPimTranslatorFunctionPlugins(): array
789
    {
790
        return [
791
            new AddAbstractSkuIfNotExistTranslatorFunctionPlugin(),
792
            new AddAttributeOptionsTranslatorFunctionPlugin(),
793
            new AddAttributeValuesTranslatorFunctionPlugin(),
794
            new AddFamilyAttributeTranslatorFunctionPlugin(),
795
            new AddMissingAttributesTranslatorFunctionPlugin(),
796
            new AddMissingLocalesTranslatorFunctionPlugin(),
797
            new AddUrlToLocalizedAttributesTranslatorFunctionPlugin(),
798
            new AttributeEmptyTranslationToKeyTranslatorFunctionPlugin(),
799
            new EnrichAttributesTranslatorFunctionPlugin(),
800
            new LabelsToLocalizedAttributeNamesTranslatorFunctionPlugin(),
801
            new LocaleKeysToIdsTranslatorFunctionPlugin(),
802
            new MarkAsSuperAttributeTranslatorFunctionPlugin(),
803
            new MeasureUnitToIntTranslatorFunctionPlugin(),
804
            new MoveLocalizedAttributesToAttributesTranslatorFunctionPlugin(),
805
            new PriceSelectorTranslatorFunctionPlugin(),
806
            new ValuesToAttributesTranslatorFunctionPlugin(),
807
            new ValuesToLocalizedAttributesTranslatorFunctionPlugin(),
808
            new MeasureUnitToIntTranslatorFunctionPlugin(),
809
            new LabelsToLocaleIdsTranslatorFunctionPlugin(),
810
            new SkipItemsWithoutParentTranslatorFunctionPlugin(),
811
        ];
812
    }
813
814
    /**
815
     * @return \SprykerMiddleware\Zed\Process\Dependency\Plugin\Validator\GenericValidatorPluginInterface[]
816
     */
817
    protected function getAkeneoPimValidatorPlugins(): array
818
    {
819
        return [
820
            new ProductAbstractExistValidatorPlugin(),
821
        ];
822
    }
823
824
    /**
825
     * @param \Spryker\Zed\Kernel\Container $container
826
     *
827
     * @return \Spryker\Zed\Kernel\Container
828
     */
829
    protected function addDefaultAkeneoPimTranslatorFunctions($container): Container
830
    {
831
        $container[static::DEFAULT_AKENEO_PIM_MIDDLEWARE_TRANSLATOR_FUNCTIONS] = function () {
832
            return $this->getDefaultAkeneoPimTranslatorFunctionPlugins();
833
        };
834
835
        return $container;
836
    }
837
838
    /**
839
     * @return \SprykerMiddleware\Zed\Process\Dependency\Plugin\TranslatorFunction\TranslatorFunctionPluginInterface[]
840
     */
841
    protected function getDefaultAkeneoPimTranslatorFunctionPlugins(): array
842
    {
843
        return [
844
            new DefaultPriceSelectorTranslatorFunctionPlugin(),
845
            new DefaultValuesToLocalizedAttributesTranslatorFunctionPlugin(),
846
            new SkipItemsWithoutParentTranslatorFunctionPlugin(),
847
        ];
848
    }
849
850
    /**
851
     * @param \Spryker\Zed\Kernel\Container $container
852
     *
853
     * @return \Spryker\Zed\Kernel\Container
854
     */
855
    protected function addCategoryDataImporterPlugin(Container $container): Container
856
    {
857
        return $container;
858
    }
859
860
    /**
861
     * @param \Spryker\Zed\Kernel\Container $container
862
     *
863
     * @return \Spryker\Zed\Kernel\Container
864
     */
865
    protected function addAttributeDataImporterPlugin(Container $container): Container
866
    {
867
        return $container;
868
    }
869
870
    /**
871
     * @param \Spryker\Zed\Kernel\Container $container
872
     *
873
     * @return \Spryker\Zed\Kernel\Container
874
     */
875
    protected function addProductAbstractDataImporterPlugin(Container $container): Container
876
    {
877
        return $container;
878
    }
879
880
    /**
881
     * @param \Spryker\Zed\Kernel\Container $container
882
     *
883
     * @return \Spryker\Zed\Kernel\Container
884
     */
885
    protected function addProductConcreteDataImporterPlugin(Container $container): Container
886
    {
887
        return $container;
888
    }
889
890
    /**
891
     * @param \Spryker\Zed\Kernel\Container $container
892
     *
893
     * @return \Spryker\Zed\Kernel\Container
894
     */
895
    protected function addProductPriceDataImporterPlugin(Container $container): Container
896
    {
897
        return $container;
898
    }
899
900
    /**
901
     * @param \Spryker\Zed\Kernel\Container $container
902
     *
903
     * @return \Spryker\Zed\Kernel\Container
904
     */
905
    protected function addProductAbstractStoresDataImporterPlugin(Container $container): Container
906
    {
907
        return $container;
908
    }
909
910
    /**
911
     * @param \Spryker\Zed\Kernel\Container $container
912
     *
913
     * @return \Spryker\Zed\Kernel\Container
914
     */
915
    protected function addDefaultCategoryImportStagePlugins($container): Container
916
    {
917
        $container[static::DEFAULT_CATEGORY_IMPORT_STAGE_PLUGINS] = function () {
918
            return [
919
                new StreamReaderStagePlugin(),
920
                new DefaultCategoryMapperStagePlugin(),
921
                new DefaultCategoryImportTranslationStagePlugin(),
922
                new StreamWriterStagePlugin(),
923
            ];
924
        };
925
926
        return $container;
927
    }
928
929
    /**
930
     * @param \Spryker\Zed\Kernel\Container $container
931
     *
932
     * @return \Spryker\Zed\Kernel\Container
933
     */
934
    protected function addDefaultProductImportStagePlugins($container): Container
935
    {
936
        $container[static::DEFAULT_PRODUCT_IMPORT_STAGE_PLUGINS] = function () {
937
            return [
938
                new StreamReaderStagePlugin(),
939
                new DefaultProductImportValidatorStagePlugin(),
940
                new DefaultProductImportTranslationStagePlugin(),
941
                new ProductMapperStagePlugin(),
942
                new StreamWriterStagePlugin(),
943
            ];
944
        };
945
946
        return $container;
947
    }
948
949
    /**
950
     * @param \Spryker\Zed\Kernel\Container $container
951
     *
952
     * @return \Spryker\Zed\Kernel\Container
953
     */
954
    protected function addDefaultProductModelImportStagePlugins($container): Container
955
    {
956
        $container[static::DEFAULT_PRODUCT_MODEL_IMPORT_STAGE_PLUGINS] = function () {
957
            return [
958
                new StreamReaderStagePlugin(),
959
                new DefaultProductModelImportValidatorStagePlugin(),
960
                new DefaultProductModelImportTranslationStagePlugin(),
961
                new ProductModelImportMapperStagePlugin(),
962
                new StreamWriterStagePlugin(),
963
            ];
964
        };
965
966
        return $container;
967
    }
968
969
    /**
970
     * @param \Spryker\Zed\Kernel\Container $container
971
     *
972
     * @return \Spryker\Zed\Kernel\Container
973
     */
974
    protected function addProductAbstractQuery($container): Container
975
    {
976
        $container[static::PRODUCT_ABSTRACT_QUERY] = function () {
977
            return SpyProductAbstractQuery::create();
978
        };
979
980
        return $container;
981
    }
982
}
983