Passed
Push — 13.x ( 81cbc5...1f5b5d )
by Tim
02:28
created

CustomerBunchProcessor::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 25
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 11
c 1
b 0
f 0
dl 0
loc 25
rs 9.9
cc 1
nc 1
nop 12

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
3
/**
4
 * TechDivision\Import\Customer\Services\CustomerBunchProcessor
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 2018 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-customer
18
 * @link      http://www.techdivision.com
19
 */
20
21
namespace TechDivision\Import\Customer\Services;
22
23
use TechDivision\Import\Actions\ActionInterface;
24
use TechDivision\Import\Connection\ConnectionInterface;
25
use TechDivision\Import\Repositories\EavAttributeRepositoryInterface;
26
use TechDivision\Import\Repositories\EavEntityTypeRepositoryInterface;
27
use TechDivision\Import\Repositories\EavAttributeOptionValueRepositoryInterface;
28
use TechDivision\Import\Customer\Assemblers\CustomerAttributeAssemblerInterface;
29
use TechDivision\Import\Customer\Repositories\CustomerRepositoryInterface;
30
31
/**
32
 * The customer bunch processor implementation.
33
 *
34
 * @author    Tim Wagner <[email protected]>
35
 * @copyright 2018 TechDivision GmbH <[email protected]>
36
 * @license   http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
37
 * @link      https://github.com/techdivision/import-customer
38
 * @link      http://www.techdivision.com
39
 */
40
class CustomerBunchProcessor implements CustomerBunchProcessorInterface
41
{
42
43
    /**
44
     * A PDO connection initialized with the values from the Doctrine EntityManager.
45
     *
46
     * @var \TechDivision\Import\Connection\ConnectionInterface
47
     */
48
    protected $connection;
49
50
    /**
51
     * The repository to access EAV attribute option values.
52
     *
53
     * @var \TechDivision\Import\Repositories\EavAttributeOptionValueRepositoryInterface
54
     */
55
    protected $eavAttributeOptionValueRepository;
56
57
    /**
58
     * The repository to access customer data.
59
     *
60
     * @var \TechDivision\Import\Customer\Repositories\CustomerRepositoryInterface
61
     */
62
    protected $customerRepository;
63
64
    /**
65
     * The repository to access EAV attributes.
66
     *
67
     * @var \TechDivision\Import\Repositories\EavAttributeRepositoryInterface
68
     */
69
    protected $eavAttributeRepository;
70
71
    /**
72
     * The repository to access EAV attributes.
73
     *
74
     * @var \TechDivision\Import\Repositories\EavEntityTypeRepositoryInterface
75
     */
76
    protected $eavEntityTypeRepository;
77
78
    /**
79
     * The action for customer CRUD methods.
80
     *
81
     * @var \TechDivision\Import\Actions\ActionInterface
82
     */
83
    protected $customerAction;
84
85
    /**
86
     * The action for customer varchar attribute CRUD methods.
87
     *
88
     * @var \TechDivision\Import\Actions\ActionInterface
89
     */
90
    protected $customerVarcharAction;
91
92
    /**
93
     * The action for customer text attribute CRUD methods.
94
     *
95
     * @var \TechDivision\Import\Actions\ActionInterface
96
     */
97
    protected $customerTextAction;
98
99
    /**
100
     * The action for customer int attribute CRUD methods.
101
     *
102
     * @var \TechDivision\Import\Actions\ActionInterface
103
     */
104
    protected $customerIntAction;
105
106
    /**
107
     * The action for customer decimal attribute CRUD methods.
108
     *
109
     * @var \TechDivision\Import\Actions\ActionInterface
110
     */
111
    protected $customerDecimalAction;
112
113
    /**
114
     * The action for customer datetime attribute CRUD methods.
115
     *
116
     * @var \TechDivision\Import\Actions\ActionInterface
117
     */
118
    protected $customerDatetimeAction;
119
120
    /**
121
     * The assembler to load the customer attributes with.
122
     *
123
     * @var \TechDivision\Import\Customer\Assemblers\CustomerAttributeAssemblerInterface
124
     */
125
    protected $customerAttributeAssembler;
126
127
    /**
128
     * Initialize the processor with the necessary assembler and repository instances.
129
     *
130
     * @param \TechDivision\Import\Connection\ConnectionInterface                          $connection                        The connection to use
131
     * @param \TechDivision\Import\Customer\Assemblers\CustomerAttributeAssemblerInterface $customerAttributeAssembler        The customer attribute assembler to use
132
     * @param \TechDivision\Import\Repositories\EavAttributeOptionValueRepositoryInterface $eavAttributeOptionValueRepository The EAV attribute option value repository to use
133
     * @param \TechDivision\Import\Repositories\EavAttributeRepositoryInterface            $eavAttributeRepository            The EAV attribute repository to use
134
     * @param \TechDivision\Import\Customer\Repositories\CustomerRepositoryInterface       $customerRepository                The customer repository to use
135
     * @param \TechDivision\Import\Repositories\EavEntityTypeRepositoryInterface           $eavEntityTypeRepository           The EAV entity type repository to use
136
     * @param \TechDivision\Import\Actions\ActionInterface                                 $customerAction                    The customer action to use
137
     * @param \TechDivision\Import\Actions\ActionInterface                                 $customerDatetimeAction            The customer datetime action to use
138
     * @param \TechDivision\Import\Actions\ActionInterface                                 $customerDecimalAction             The customer decimal action to use
139
     * @param \TechDivision\Import\Actions\ActionInterface                                 $customerIntAction                 The customer integer action to use
140
     * @param \TechDivision\Import\Actions\ActionInterface                                 $customerTextAction                The customer text action to use
141
     * @param \TechDivision\Import\Actions\ActionInterface                                 $customerVarcharAction             The customer varchar action to use
142
     */
143
    public function __construct(
144
        ConnectionInterface $connection,
145
        CustomerAttributeAssemblerInterface $customerAttributeAssembler,
146
        EavAttributeOptionValueRepositoryInterface $eavAttributeOptionValueRepository,
147
        EavAttributeRepositoryInterface $eavAttributeRepository,
148
        CustomerRepositoryInterface $customerRepository,
149
        EavEntityTypeRepositoryInterface $eavEntityTypeRepository,
0 ignored issues
show
Unused Code introduced by
The parameter $eavEntityTypeRepository is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

149
        /** @scrutinizer ignore-unused */ EavEntityTypeRepositoryInterface $eavEntityTypeRepository,

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
150
        ActionInterface $customerAction,
151
        ActionInterface $customerDatetimeAction,
152
        ActionInterface $customerDecimalAction,
153
        ActionInterface $customerIntAction,
154
        ActionInterface $customerTextAction,
155
        ActionInterface $customerVarcharAction
156
    ) {
157
        $this->setConnection($connection);
158
        $this->setCustomerAttributeAssembler($customerAttributeAssembler);
159
        $this->setEavAttributeOptionValueRepository($eavAttributeOptionValueRepository);
160
        $this->setEavAttributeRepository($eavAttributeRepository);
161
        $this->setCustomerRepository($customerRepository);
162
        $this->setCustomerAction($customerAction);
163
        $this->setCustomerDatetimeAction($customerDatetimeAction);
164
        $this->setCustomerDecimalAction($customerDecimalAction);
165
        $this->setCustomerIntAction($customerIntAction);
166
        $this->setCustomerTextAction($customerTextAction);
167
        $this->setCustomerVarcharAction($customerVarcharAction);
168
    }
169
170
    /**
171
     * Set's the passed connection.
172
     *
173
     * @param \TechDivision\Import\Connection\ConnectionInterface $connection The connection to set
174
     *
175
     * @return void
176
     */
177
    public function setConnection(ConnectionInterface $connection)
178
    {
179
        $this->connection = $connection;
180
    }
181
182
    /**
183
     * Return's the connection.
184
     *
185
     * @return \TechDivision\Import\Connection\ConnectionInterface The connection instance
186
     */
187
    public function getConnection()
188
    {
189
        return $this->connection;
190
    }
191
192
    /**
193
     * Turns off autocommit mode. While autocommit mode is turned off, changes made to the database via the PDO
194
     * object instance are not committed until you end the transaction by calling CustomerProcessor::commit().
195
     * Calling CustomerProcessor::rollBack() will roll back all changes to the database and return the connection
196
     * to autocommit mode.
197
     *
198
     * @return boolean Returns TRUE on success or FALSE on failure
199
     * @link http://php.net/manual/en/pdo.begintransaction.php
200
     */
201
    public function beginTransaction()
202
    {
203
        return $this->connection->beginTransaction();
204
    }
205
206
    /**
207
     * Commits a transaction, returning the database connection to autocommit mode until the next call to
208
     * CustomerProcessor::beginTransaction() starts a new transaction.
209
     *
210
     * @return boolean Returns TRUE on success or FALSE on failure
211
     * @link http://php.net/manual/en/pdo.commit.php
212
     */
213
    public function commit()
214
    {
215
        return $this->connection->commit();
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->connection->commit() returns the type void which is incompatible with the documented return type boolean.
Loading history...
Bug introduced by
Are you sure the usage of $this->connection->commit() targeting TechDivision\Import\Conn...tionInterface::commit() seems to always return null.

This check looks for function or method calls that always return null and whose return value is used.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
if ($a->getObject()) {

The method getObject() can return nothing but null, so it makes no sense to use the return value.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
216
    }
217
218
    /**
219
     * Rolls back the current transaction, as initiated by CustomerProcessor::beginTransaction().
220
     *
221
     * If the database was set to autocommit mode, this function will restore autocommit mode after it has
222
     * rolled back the transaction.
223
     *
224
     * Some databases, including MySQL, automatically issue an implicit COMMIT when a database definition
225
     * language (DDL) statement such as DROP TABLE or CREATE TABLE is issued within a transaction. The implicit
226
     * COMMIT will prevent you from rolling back any other changes within the transaction boundary.
227
     *
228
     * @return boolean Returns TRUE on success or FALSE on failure
229
     * @link http://php.net/manual/en/pdo.rollback.php
230
     */
231
    public function rollBack()
232
    {
233
        return $this->connection->rollBack();
234
    }
235
236
    /**
237
     * Set's the repository to load the customers with.
238
     *
239
     * @param \TechDivision\Import\Customer\Repositories\CustomerRepositoryInterface $customerRepository The repository instance
240
     *
241
     * @return void
242
     */
243
    public function setCustomerRepository(CustomerRepositoryInterface $customerRepository)
244
    {
245
        $this->customerRepository = $customerRepository;
246
    }
247
248
    /**
249
     * Return's the repository to load the customers with.
250
     *
251
     * @return \TechDivision\Import\Customer\Repositories\CustomerRepositoryInterface The repository instance
252
     */
253
    public function getCustomerRepository()
254
    {
255
        return $this->customerRepository;
256
    }
257
258
    /**
259
     * Set's the action with the customer CRUD methods.
260
     *
261
     * @param \TechDivision\Import\Actions\ActionInterface $customerAction The action with the customer CRUD methods
262
     *
263
     * @return void
264
     */
265
    public function setCustomerAction(ActionInterface $customerAction)
266
    {
267
        $this->customerAction = $customerAction;
268
    }
269
270
    /**
271
     * Return's the action with the customer CRUD methods.
272
     *
273
     * @return \TechDivision\Import\Actions\ActionInterface The action instance
274
     */
275
    public function getCustomerAction()
276
    {
277
        return $this->customerAction;
278
    }
279
280
    /**
281
     * Set's the action with the customer varchar attribute CRUD methods.
282
     *
283
     * @param \TechDivision\Import\Actions\ActionInterface $customerVarcharAction The action with the customer varchar attriute CRUD methods
284
     *
285
     * @return void
286
     */
287
    public function setCustomerVarcharAction(ActionInterface $customerVarcharAction)
288
    {
289
        $this->customerVarcharAction = $customerVarcharAction;
290
    }
291
292
    /**
293
     * Return's the action with the customer varchar attribute CRUD methods.
294
     *
295
     * @return \TechDivision\Import\Actions\ActionInterface The action instance
296
     */
297
    public function getCustomerVarcharAction()
298
    {
299
        return $this->customerVarcharAction;
300
    }
301
302
    /**
303
     * Set's the action with the customer text attribute CRUD methods.
304
     *
305
     * @param \TechDivision\Import\Actions\ActionInterface $customerTextAction The action with the customer text attriute CRUD methods
306
     *
307
     * @return void
308
     */
309
    public function setCustomerTextAction(ActionInterface $customerTextAction)
310
    {
311
        $this->customerTextAction = $customerTextAction;
312
    }
313
314
    /**
315
     * Return's the action with the customer text attribute CRUD methods.
316
     *
317
     * @return \TechDivision\Import\Actions\ActionInterface The action instance
318
     */
319
    public function getCustomerTextAction()
320
    {
321
        return $this->customerTextAction;
322
    }
323
324
    /**
325
     * Set's the action with the customer int attribute CRUD methods.
326
     *
327
     * @param \TechDivision\Import\Actions\ActionInterface $customerIntAction The action with the customer int attriute CRUD methods
328
     *
329
     * @return void
330
     */
331
    public function setCustomerIntAction(ActionInterface $customerIntAction)
332
    {
333
        $this->customerIntAction = $customerIntAction;
334
    }
335
336
    /**
337
     * Return's the action with the customer int attribute CRUD methods.
338
     *
339
     * @return \TechDivision\Import\Actions\ActionInterface The action instance
340
     */
341
    public function getCustomerIntAction()
342
    {
343
        return $this->customerIntAction;
344
    }
345
346
    /**
347
     * Set's the action with the customer decimal attribute CRUD methods.
348
     *
349
     * @param \TechDivision\Import\Actions\ActionInterface $customerDecimalAction The action with the customer decimal attriute CRUD methods
350
     *
351
     * @return void
352
     */
353
    public function setCustomerDecimalAction(ActionInterface $customerDecimalAction)
354
    {
355
        $this->customerDecimalAction = $customerDecimalAction;
356
    }
357
358
    /**
359
     * Return's the action with the customer decimal attribute CRUD methods.
360
     *
361
     * @return \TechDivision\Import\Actions\ActionInterface The action instance
362
     */
363
    public function getCustomerDecimalAction()
364
    {
365
        return $this->customerDecimalAction;
366
    }
367
368
    /**
369
     * Set's the action with the customer datetime attribute CRUD methods.
370
     *
371
     * @param \TechDivision\Import\Actions\ActionInterface $customerDatetimeAction The action with the customer datetime attriute CRUD methods
372
     *
373
     * @return void
374
     */
375
    public function setCustomerDatetimeAction(ActionInterface $customerDatetimeAction)
376
    {
377
        $this->customerDatetimeAction = $customerDatetimeAction;
378
    }
379
380
    /**
381
     * Return's the action with the customer datetime attribute CRUD methods.
382
     *
383
     * @return \TechDivision\Import\Actions\ActionInterface The action instance
384
     */
385
    public function getCustomerDatetimeAction()
386
    {
387
        return $this->customerDatetimeAction;
388
    }
389
390
    /**
391
     * Set's the repository to access EAV attribute option values.
392
     *
393
     * @param \TechDivision\Import\Repositories\EavAttributeOptionValueRepositoryInterface $eavAttributeOptionValueRepository The repository to access EAV attribute option values
394
     *
395
     * @return void
396
     */
397
    public function setEavAttributeOptionValueRepository(EavAttributeOptionValueRepositoryInterface $eavAttributeOptionValueRepository)
398
    {
399
        $this->eavAttributeOptionValueRepository = $eavAttributeOptionValueRepository;
400
    }
401
402
    /**
403
     * Return's the repository to access EAV attribute option values.
404
     *
405
     * @return \TechDivision\Import\Repositories\EavAttributeOptionValueRepositoryInterface The repository instance
406
     */
407
    public function getEavAttributeOptionValueRepository()
408
    {
409
        return $this->eavAttributeOptionValueRepository;
410
    }
411
412
    /**
413
     * Set's the repository to access EAV attributes.
414
     *
415
     * @param \TechDivision\Import\Repositories\EavAttributeRepositoryInterface $eavAttributeRepository The repository to access EAV attributes
416
     *
417
     * @return void
418
     */
419
    public function setEavAttributeRepository(EavAttributeRepositoryInterface $eavAttributeRepository)
420
    {
421
        $this->eavAttributeRepository = $eavAttributeRepository;
422
    }
423
424
    /**
425
     * Return's the repository to access EAV attributes.
426
     *
427
     * @return \TechDivision\Import\Repositories\EavAttributeRepositoryInterface The repository instance
428
     */
429
    public function getEavAttributeRepository()
430
    {
431
        return $this->eavAttributeRepository;
432
    }
433
434
    /**
435
     * Set's the repository to access EAV entity types.
436
     *
437
     * @param \TechDivision\Import\Repositories\EavEntityTypeRepositoryInterface $eavEntityTypeRepository The repository to access EAV entity types
438
     *
439
     * @return void
440
     */
441
    public function setEavEntityTypeRepository(EavEntityTypeRepositoryInterface $eavEntityTypeRepository)
442
    {
443
        $this->eavEntityTypeRepository = $eavEntityTypeRepository;
444
    }
445
446
    /**
447
     * Return's the repository to access EAV entity types.
448
     *
449
     * @return \TechDivision\Import\Repositories\EavEntityTypeRepositoryInterface The repository instance
450
     */
451
    public function getEavEntityTypeRepository()
452
    {
453
        return $this->eavAttributeRepository;
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->eavAttributeRepository returns the type TechDivision\Import\Repo...buteRepositoryInterface which is incompatible with the documented return type TechDivision\Import\Repo...TypeRepositoryInterface.
Loading history...
454
    }
455
456
    /**
457
     * Set's the assembler to load the customer attributes with.
458
     *
459
     * @param \TechDivision\Import\Customer\Assemblers\CustomerAttributeAssemblerInterface $customerAttributeAssembler The assembler instance
460
     *
461
     * @return void
462
     */
463
    public function setCustomerAttributeAssembler(CustomerAttributeAssemblerInterface $customerAttributeAssembler)
464
    {
465
        $this->customerAttributeAssembler = $customerAttributeAssembler;
466
    }
467
468
    /**
469
     * Return's the assembler to load the customer attributes with.
470
     *
471
     * @return \TechDivision\Import\Customer\Assemblers\CustomerAttributeAssemblerInterface The assembler instance
472
     */
473
    public function getCustomerAttributeAssembler()
474
    {
475
        return $this->customerAttributeAssembler;
476
    }
477
478
    /**
479
     * Return's an array with the available EAV attributes for the passed is user defined flag.
480
     *
481
     * @param integer $isUserDefined The flag itself
482
     *
483
     * @return array The array with the EAV attributes matching the passed flag
484
     */
485
    public function getEavAttributeByIsUserDefined($isUserDefined = 1)
486
    {
487
        return $this->getEavAttributeRepository()->findAllByIsUserDefined($isUserDefined);
488
    }
489
490
    /**
491
     * Intializes the existing attributes for the entity with the passed entity ID.
492
     *
493
     * @param integer $entityId The entity ID of the entity to load the attributes for
494
     *
495
     * @return array The entity attributes
496
     */
497
    public function getCustomerAttributesByEntityId($entityId)
498
    {
499
        return $this->getCustomerAttributeAssembler()->getCustomerAttributesByEntityId($entityId);
500
    }
501
502
    /**
503
     * Load's and return's the EAV attribute option value with the passed entity type ID, code, store ID and value.
504
     *
505
     * @param string  $entityTypeId  The entity type ID of the EAV attribute to load the option value for
506
     * @param string  $attributeCode The code of the EAV attribute option to load
507
     * @param integer $storeId       The store ID of the attribute option to load
508
     * @param string  $value         The value of the attribute option to load
509
     *
510
     * @return array The EAV attribute option value
511
     */
512
    public function loadAttributeOptionValueByEntityTypeIdAndAttributeCodeAndStoreIdAndValue($entityTypeId, $attributeCode, $storeId, $value)
513
    {
514
        return $this->getEavAttributeOptionValueRepository()->findOneByEntityTypeIdAndAttributeCodeAndStoreIdAndValue($entityTypeId, $attributeCode, $storeId, $value);
515
    }
516
517
    /**
518
     * Return's an EAV entity type with the passed entity type code.
519
     *
520
     * @param string $entityTypeCode The code of the entity type to return
521
     *
522
     * @return array The entity type with the passed entity type code
523
     */
524
    public function loadEavEntityTypeByEntityTypeCode($entityTypeCode)
525
    {
526
        return $this->getEavEntityTypeRepository()->findOneByEntityTypeCode($entityTypeCode);
527
    }
528
529
    /**
530
     * Return's the customer with the passed email and website ID.
531
     *
532
     * @param string $email     The email of the customer to return
533
     * @param string $websiteId The website ID of the customer to return
534
     *
535
     * @return array|null The customer
536
     */
537
    public function loadCustomerByEmailAndWebsiteId($email, $websiteId)
538
    {
539
        return $this->getCustomerRepository()->findOneByEmailAndWebsiteId($email, $websiteId);
540
    }
541
542
    /**
543
     * Persist's the passed customer data and return's the ID.
544
     *
545
     * @param array       $customer The customer data to persist
546
     * @param string|null $name     The name of the prepared statement that has to be executed
547
     *
548
     * @return string The ID of the persisted entity
549
     */
550
    public function persistCustomer($customer, $name = null)
551
    {
552
        return $this->getCustomerAction()->persist($customer, $name);
0 ignored issues
show
Bug introduced by
Are you sure the usage of $this->getCustomerAction...rsist($customer, $name) targeting TechDivision\Import\Acti...ionInterface::persist() seems to always return null.

This check looks for function or method calls that always return null and whose return value is used.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
if ($a->getObject()) {

The method getObject() can return nothing but null, so it makes no sense to use the return value.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
Unused Code introduced by
The call to TechDivision\Import\Acti...ionInterface::persist() has too many arguments starting with $name. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

552
        return $this->getCustomerAction()->/** @scrutinizer ignore-call */ persist($customer, $name);

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
Bug Best Practice introduced by
The expression return $this->getCustome...rsist($customer, $name) returns the type void which is incompatible with the documented return type string.
Loading history...
553
    }
554
555
    /**
556
     * Persist's the passed customer varchar attribute.
557
     *
558
     * @param array       $attribute The attribute to persist
559
     * @param string|null $name      The name of the prepared statement that has to be executed
560
     *
561
     * @return void
562
     */
563
    public function persistCustomerVarcharAttribute($attribute, $name = null)
564
    {
565
        $this->getCustomerVarcharAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Acti...ionInterface::persist() has too many arguments starting with $name. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

565
        $this->getCustomerVarcharAction()->/** @scrutinizer ignore-call */ persist($attribute, $name);

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
566
    }
567
568
    /**
569
     * Persist's the passed customer integer attribute.
570
     *
571
     * @param array       $attribute The attribute to persist
572
     * @param string|null $name      The name of the prepared statement that has to be executed
573
     *
574
     * @return void
575
     */
576
    public function persistCustomerIntAttribute($attribute, $name = null)
577
    {
578
        $this->getCustomerIntAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Acti...ionInterface::persist() has too many arguments starting with $name. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

578
        $this->getCustomerIntAction()->/** @scrutinizer ignore-call */ persist($attribute, $name);

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
579
    }
580
581
    /**
582
     * Persist's the passed customer decimal attribute.
583
     *
584
     * @param array       $attribute The attribute to persist
585
     * @param string|null $name      The name of the prepared statement that has to be executed
586
     *
587
     * @return void
588
     */
589
    public function persistCustomerDecimalAttribute($attribute, $name = null)
590
    {
591
        $this->getCustomerDecimalAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Acti...ionInterface::persist() has too many arguments starting with $name. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

591
        $this->getCustomerDecimalAction()->/** @scrutinizer ignore-call */ persist($attribute, $name);

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
592
    }
593
594
    /**
595
     * Persist's the passed customer datetime attribute.
596
     *
597
     * @param array       $attribute The attribute to persist
598
     * @param string|null $name      The name of the prepared statement that has to be executed
599
     *
600
     * @return void
601
     */
602
    public function persistCustomerDatetimeAttribute($attribute, $name = null)
603
    {
604
        $this->getCustomerDatetimeAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Acti...ionInterface::persist() has too many arguments starting with $name. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

604
        $this->getCustomerDatetimeAction()->/** @scrutinizer ignore-call */ persist($attribute, $name);

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
605
    }
606
607
    /**
608
     * Persist's the passed customer text attribute.
609
     *
610
     * @param array       $attribute The attribute to persist
611
     * @param string|null $name      The name of the prepared statement that has to be executed
612
     *
613
     * @return void
614
     */
615
    public function persistCustomerTextAttribute($attribute, $name = null)
616
    {
617
        $this->getCustomerTextAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Acti...ionInterface::persist() has too many arguments starting with $name. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

617
        $this->getCustomerTextAction()->/** @scrutinizer ignore-call */ persist($attribute, $name);

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
618
    }
619
620
    /**
621
     * Delete's the entity with the passed attributes.
622
     *
623
     * @param array       $row  The attributes of the entity to delete
624
     * @param string|null $name The name of the prepared statement that has to be executed
625
     *
626
     * @return void
627
     */
628
    public function deleteCustomer($row, $name = null)
629
    {
630
        $this->getCustomerAction()->delete($row, $name);
631
    }
632
633
    /**
634
     * Delete's the customer datetime attribute with the passed attributes.
635
     *
636
     * @param array       $row  The attributes of the entity to delete
637
     * @param string|null $name The name of the prepared statement that has to be executed
638
     *
639
     * @return void
640
     */
641
    public function deleteCustomerDatetimeAttribute($row, $name = null)
642
    {
643
        $this->getCustomerDatetimeAction()->delete($row, $name);
644
    }
645
646
    /**
647
     * Delete's the customer decimal attribute with the passed attributes.
648
     *
649
     * @param array       $row  The attributes of the entity to delete
650
     * @param string|null $name The name of the prepared statement that has to be executed
651
     *
652
     * @return void
653
     */
654
    public function deleteCustomerDecimalAttribute($row, $name = null)
655
    {
656
        $this->getCustomerDecimalAction()->delete($row, $name);
657
    }
658
659
    /**
660
     * Delete's the customer integer attribute with the passed attributes.
661
     *
662
     * @param array       $row  The attributes of the entity to delete
663
     * @param string|null $name The name of the prepared statement that has to be executed
664
     *
665
     * @return void
666
     */
667
    public function deleteCustomerIntAttribute($row, $name = null)
668
    {
669
        $this->getCustomerIntAction()->delete($row, $name);
670
    }
671
672
    /**
673
     * Delete's the customer text attribute with the passed attributes.
674
     *
675
     * @param array       $row  The attributes of the entity to delete
676
     * @param string|null $name The name of the prepared statement that has to be executed
677
     *
678
     * @return void
679
     */
680
    public function deleteCustomerTextAttribute($row, $name = null)
681
    {
682
        $this->getCustomerTextAction()->delete($row, $name);
683
    }
684
685
    /**
686
     * Delete's the customer varchar attribute with the passed attributes.
687
     *
688
     * @param array       $row  The attributes of the entity to delete
689
     * @param string|null $name The name of the prepared statement that has to be executed
690
     *
691
     * @return void
692
     */
693
    public function deleteCustomerVarcharAttribute($row, $name = null)
694
    {
695
        $this->getCustomerVarcharAction()->delete($row, $name);
696
    }
697
698
    /**
699
     * Clean-Up the repositories to free memory.
700
     *
701
     * @return void
702
     */
703
    public function cleanUp()
704
    {
705
        // flush the cache
706
    }
707
}
708