Passed
Push — master ( feb03b...b59be3 )
by
unknown
11:32 queued 07:44
created

CustomerAddressBunchProcessor::rollBack()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
ccs 0
cts 3
cp 0
rs 10
cc 1
nc 1
nop 0
crap 2
1
<?php
2
3
/**
4
 * TechDivision\Import\Customer\Address\Services\CustomerAddressBunchProcessor
5
 *
6
 * PHP version 7
7
 *
8
 * @author    Tim Wagner <[email protected]>
9
 * @copyright 2018 TechDivision GmbH <[email protected]>
10
 * @license   https://opensource.org/licenses/MIT
11
 * @link      https://github.com/techdivision/import-customer-address
12
 * @link      http://www.techdivision.com
13
 */
14
15
namespace TechDivision\Import\Customer\Address\Services;
16
17
use TechDivision\Import\Dbal\Actions\ActionInterface;
18
use TechDivision\Import\Dbal\Connection\ConnectionInterface;
19
use TechDivision\Import\Repositories\EavAttributeRepositoryInterface;
20
use TechDivision\Import\Repositories\EavEntityTypeRepositoryInterface;
21
use TechDivision\Import\Repositories\EavAttributeOptionValueRepositoryInterface;
22
use TechDivision\Import\Customer\Repositories\CustomerRepositoryInterface;
23
use TechDivision\Import\Customer\Address\Assemblers\CustomerAddressAttributeAssemblerInterface;
24
use TechDivision\Import\Customer\Address\Repositories\CustomerAddressRepositoryInterface;
25
26
/**
27
 * The customer address bunch processor implementation.
28
 *
29
 * @author    Tim Wagner <[email protected]>
30
 * @copyright 2018 TechDivision GmbH <[email protected]>
31
 * @license   https://opensource.org/licenses/MIT
32
 * @link      https://github.com/techdivision/import-customer-address
33
 * @link      http://www.techdivision.com
34
 */
35
class CustomerAddressBunchProcessor implements CustomerAddressBunchProcessorInterface
36
{
37
38
    /**
39
     * A PDO connection initialized with the values from the Doctrine EntityManager.
40
     *
41
     * @var \TechDivision\Import\Dbal\Connection\ConnectionInterface
42
     */
43
    protected $connection;
44
45
    /**
46
     * The repository to access EAV attribute option values.
47
     *
48
     * @var \TechDivision\Import\Repositories\EavAttributeOptionValueRepositoryInterface
49
     */
50
    protected $eavAttributeOptionValueRepository;
51
52
    /**
53
     * The repository to access customer data.
54
     *
55
     * @var \TechDivision\Import\Customer\Repositories\CustomerRepositoryInterface
56
     */
57
    protected $customerRepository;
58
59
    /**
60
     * The repository to access customer address address data.
61
     *
62
     * @var \TechDivision\Import\Customer\Address\Repositories\CustomerAddressRepositoryInterface
63
     */
64
    protected $customerAddressRepository;
65
66
    /**
67
     * The repository to access EAV attributes.
68
     *
69
     * @var \TechDivision\Import\Repositories\EavAttributeRepositoryInterface
70
     */
71
    protected $eavAttributeRepository;
72
73
    /**
74
     * The repository to access EAV attributes.
75
     *
76
     * @var \TechDivision\Import\Repositories\EavEntityTypeRepositoryInterface
77
     */
78
    protected $eavEntityTypeRepository;
79
80
    /**
81
     * The action for customer address CRUD methods.
82
     *
83
     * @var \TechDivision\Import\Dbal\Actions\ActionInterface
84
     */
85
    protected $customerAddressAction;
86
87
    /**
88
     * The action for customer address varchar attribute CRUD methods.
89
     *
90
     * @var \TechDivision\Import\Dbal\Actions\ActionInterface
91
     */
92
    protected $customerAddressVarcharAction;
93
94
    /**
95
     * The action for customer address text attribute CRUD methods.
96
     *
97
     * @var \TechDivision\Import\Dbal\Actions\ActionInterface
98
     */
99
    protected $customerAddressTextAction;
100
101
    /**
102
     * The action for customer address int attribute CRUD methods.
103
     *
104
     * @var \TechDivision\Import\Dbal\Actions\ActionInterface
105
     */
106
    protected $customerAddressIntAction;
107
108
    /**
109
     * The action for customer address decimal attribute CRUD methods.
110
     *
111
     * @var \\TechDivision\Import\Dbal\Actions\ActionInterface
0 ignored issues
show
Bug introduced by
The type \TechDivision\Import\Dbal\Actions\ActionInterface 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...
112
     */
113
    protected $customerAddressDecimalAction;
114
115
    /**
116
     * The action for customer address datetime attribute CRUD methods.
117
     *
118
     * @var \TechDivision\Import\Dbal\Actions\ActionInterface
119
     */
120
    protected $customerAddressDatetimeAction;
121
122
    /**
123
     * The assembler to load the customer address attributes with.
124
     *
125
     * @var \TechDivision\Import\Customer\Address\Assemblers\CustomerAddressAttributeAssemblerInterface
126
     */
127
    protected $customerAddressAttributeAssembler;
128
129
    /**
130
     * Initialize the processor with the necessary assembler and repository instances.
131
     *
132
     * @param \TechDivision\Import\Dbal\Connection\ConnectionInterface                                    $connection                        The connection to use
133
     * @param \TechDivision\Import\Customer\Address\Assemblers\CustomerAddressAttributeAssemblerInterface $customerAddressAttributeAssembler The customer address attribute assembler to use
134
     * @param \TechDivision\Import\Repositories\EavAttributeOptionValueRepositoryInterface                $eavAttributeOptionValueRepository The EAV attribute option value repository to use
135
     * @param \TechDivision\Import\Repositories\EavAttributeRepositoryInterface                           $eavAttributeRepository            The EAV attribute repository to use
136
     * @param \TechDivision\Import\Customer\Repositories\CustomerRepositoryInterface                      $customerRepository                The customer repository to use
137
     * @param \TechDivision\Import\Customer\Address\Repositories\CustomerAddressRepositoryInterface       $customerAddressRepository         The customer address repository to use
138
     * @param \TechDivision\Import\Repositories\EavEntityTypeRepositoryInterface                          $eavEntityTypeRepository           The EAV entity type repository to use
139
     * @param \TechDivision\Import\Dbal\Actions\ActionInterface                                           $customerAddressAction             The customer address action to use
140
     * @param \TechDivision\Import\Dbal\Actions\ActionInterface                                           $customerAddressDatetimeAction     The customer address datetime action to use
141
     * @param \TechDivision\Import\Dbal\Actions\ActionInterface                                           $customerAddressDecimalAction      The customer address decimal action to use
142
     * @param \TechDivision\Import\Dbal\Actions\ActionInterface                                           $customerAddressIntAction          The customer address integer action to use
143
     * @param \TechDivision\Import\Dbal\Actions\ActionInterface                                           $customerAddressTextAction         The customer address text action to use
144
     * @param \TechDivision\Import\Dbal\Actions\ActionInterface                                           $customerAddressVarcharAction      The customer address varchar action to use
145
     */
146
    public function __construct(
147
        ConnectionInterface $connection,
148
        CustomerAddressAttributeAssemblerInterface $customerAddressAttributeAssembler,
149
        EavAttributeOptionValueRepositoryInterface $eavAttributeOptionValueRepository,
150
        EavAttributeRepositoryInterface $eavAttributeRepository,
151
        CustomerRepositoryInterface $customerRepository,
152
        CustomerAddressRepositoryInterface $customerAddressRepository,
153
        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

153
        /** @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...
154
        ActionInterface $customerAddressAction,
155
        ActionInterface $customerAddressDatetimeAction,
156
        ActionInterface $customerAddressDecimalAction,
157
        ActionInterface $customerAddressIntAction,
158
        ActionInterface $customerAddressTextAction,
159
        ActionInterface $customerAddressVarcharAction
160
    ) {
161
        $this->setConnection($connection);
162
        $this->setCustomerAddressAttributeAssembler($customerAddressAttributeAssembler);
163
        $this->setEavAttributeOptionValueRepository($eavAttributeOptionValueRepository);
164
        $this->setEavAttributeRepository($eavAttributeRepository);
165
        $this->setCustomerRepository($customerRepository);
166
        $this->setCustomerAddressRepository($customerAddressRepository);
167
        $this->setCustomerAddressAction($customerAddressAction);
168
        $this->setCustomerAddressDatetimeAction($customerAddressDatetimeAction);
169
        $this->setCustomerAddressDecimalAction($customerAddressDecimalAction);
170
        $this->setCustomerAddressIntAction($customerAddressIntAction);
171
        $this->setCustomerAddressTextAction($customerAddressTextAction);
172
        $this->setCustomerAddressVarcharAction($customerAddressVarcharAction);
173
    }
174
175
    /**
176
     * Set's the passed connection.
177
     *
178
     * @param \TechDivision\Import\Dbal\Connection\ConnectionInterface $connection The connection to set
179
     *
180
     * @return void
181
     */
182
    public function setConnection(ConnectionInterface $connection)
183
    {
184
        $this->connection = $connection;
185
    }
186
187
    /**
188
     * Return's the connection.
189
     *
190
     * @return \TechDivision\Import\Dbal\Connection\ConnectionInterface The connection instance
191
     */
192
    public function getConnection()
193
    {
194
        return $this->connection;
195
    }
196
197
    /**
198
     * Turns off autocommit mode. While autocommit mode is turned off, changes made to the database via the PDO
199
     * object instance are not committed until you end the transaction by calling CustomerProcessor::commit().
200
     * Calling CustomerProcessor::rollBack() will roll back all changes to the database and return the connection
201
     * to autocommit mode.
202
     *
203
     * @return boolean Returns TRUE on success or FALSE on failure
204
     * @link http://php.net/manual/en/pdo.begintransaction.php
205
     */
206
    public function beginTransaction()
207
    {
208
        return $this->connection->beginTransaction();
209
    }
210
211
    /**
212
     * Commits a transaction, returning the database connection to autocommit mode until the next call to
213
     * CustomerProcessor::beginTransaction() starts a new transaction.
214
     *
215
     * @return boolean Returns TRUE on success or FALSE on failure
216
     * @link http://php.net/manual/en/pdo.commit.php
217
     */
218
    public function commit()
219
    {
220
        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\Dbal...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...
221
    }
222
223
    /**
224
     * Rolls back the current transaction, as initiated by CustomerProcessor::beginTransaction().
225
     *
226
     * If the database was set to autocommit mode, this function will restore autocommit mode after it has
227
     * rolled back the transaction.
228
     *
229
     * Some databases, including MySQL, automatically issue an implicit COMMIT when a database definition
230
     * language (DDL) statement such as DROP TABLE or CREATE TABLE is issued within a transaction. The implicit
231
     * COMMIT will prevent you from rolling back any other changes within the transaction boundary.
232
     *
233
     * @return boolean Returns TRUE on success or FALSE on failure
234
     * @link http://php.net/manual/en/pdo.rollback.php
235
     */
236
    public function rollBack()
237
    {
238
        return $this->connection->rollBack();
239
    }
240
241
    /**
242
     * Set's the repository to load the customers with.
243
     *
244
     * @param \TechDivision\Import\Customer\Repositories\CustomerRepositoryInterface $customerRepository The repository instance
245
     *
246
     * @return void
247
     */
248
    public function setCustomerRepository(CustomerRepositoryInterface $customerRepository)
249
    {
250
        $this->customerRepository = $customerRepository;
251
    }
252
253
    /**
254
     * Return's the repository to load the customers with.
255
     *
256
     * @return \TechDivision\Import\Customer\Repositories\CustomerRepositoryInterface The repository instance
257
     */
258
    public function getCustomerRepository()
259
    {
260
        return $this->customerRepository;
261
    }
262
263
    /**
264
     * Set's the repository to load the customer addresses with.
265
     *
266
     * @param \TechDivision\Import\Customer\Address\Repositories\CustomerAddressRepositoryInterface $customerAddressRepository The repository instance
267
     *
268
     * @return void
269
     */
270
    public function setCustomerAddressRepository(CustomerAddressRepositoryInterface $customerAddressRepository)
271
    {
272
        $this->customerAddressRepository = $customerAddressRepository;
273
    }
274
275
    /**
276
     * Return's the repository to load the customer addresses with.
277
     *
278
     * @return \TechDivision\Import\Customer\Address\Repositories\CustomerAddressRepositoryInterface The repository instance
279
     */
280
    public function getCustomerAddressRepository()
281
    {
282
        return $this->customerAddressRepository;
283
    }
284
285
    /**
286
     * Set's the action with the customer address CRUD methods.
287
     *
288
     * @param \TechDivision\Import\Dbal\Actions\ActionInterface $customerAddressAction The action with the customer CRUD methods
289
     *
290
     * @return void
291
     */
292
    public function setCustomerAddressAction(ActionInterface $customerAddressAction)
293
    {
294
        $this->customerAddressAction = $customerAddressAction;
295
    }
296
297
    /**
298
     * Return's the action with the customer address CRUD methods.
299
     *
300
     * @return \TechDivision\Import\Dbal\Actions\ActionInterface The action instance
301
     */
302
    public function getCustomerAddressAction()
303
    {
304
        return $this->customerAddressAction;
305
    }
306
307
    /**
308
     * Set's the action with the customer address varchar attribute CRUD methods.
309
     *
310
     * @param \TechDivision\Import\Dbal\Actions\ActionInterface $customerAddressVarcharAction The action with the customer varchar attriute CRUD methods
311
     *
312
     * @return void
313
     */
314
    public function setCustomerAddressVarcharAction(ActionInterface $customerAddressVarcharAction)
315
    {
316
        $this->customerAddressVarcharAction = $customerAddressVarcharAction;
317
    }
318
319
    /**
320
     * Return's the action with the customer address varchar attribute CRUD methods.
321
     *
322
     * @return \TechDivision\Import\Dbal\Actions\ActionInterface The action instance
323
     */
324
    public function getCustomerAddressVarcharAction()
325
    {
326
        return $this->customerAddressVarcharAction;
327
    }
328
329
    /**
330
     * Set's the action with the customer address text attribute CRUD methods.
331
     *
332
     * @param \TechDivision\Import\Dbal\Actions\ActionInterface $customerAddressTextAction The action with the customer text attriute CRUD methods
333
     *
334
     * @return void
335
     */
336
    public function setCustomerAddressTextAction(ActionInterface $customerAddressTextAction)
337
    {
338
        $this->customerAddressTextAction = $customerAddressTextAction;
339
    }
340
341
    /**
342
     * Return's the action with the customer address text attribute CRUD methods.
343
     *
344
     * @return \TechDivision\Import\Dbal\Actions\ActionInterface The action instance
345
     */
346
    public function getCustomerAddressTextAction()
347
    {
348
        return $this->customerAddressTextAction;
349
    }
350
351
    /**
352
     * Set's the action with the customer address int attribute CRUD methods.
353
     *
354
     * @param \TechDivision\Import\Dbal\Actions\ActionInterface $customerAddressIntAction The action with the customer int attriute CRUD methods
355
     *
356
     * @return void
357
     */
358
    public function setCustomerAddressIntAction(ActionInterface $customerAddressIntAction)
359
    {
360
        $this->customerAddressIntAction = $customerAddressIntAction;
361
    }
362
363
    /**
364
     * Return's the action with the customer address int attribute CRUD methods.
365
     *
366
     * @return \TechDivision\Import\Dbal\Actions\ActionInterface The action instance
367
     */
368
    public function getCustomerAddressIntAction()
369
    {
370
        return $this->customerAddressIntAction;
371
    }
372
373
    /**
374
     * Set's the action with the customer address decimal attribute CRUD methods.
375
     *
376
     * @param \TechDivision\Import\Dbal\Actions\ActionInterface $customerAddressDecimalAction The action with the customer decimal attriute CRUD methods
377
     *
378
     * @return void
379
     */
380
    public function setCustomerAddressDecimalAction(ActionInterface $customerAddressDecimalAction)
381
    {
382
        $this->customerAddressDecimalAction = $customerAddressDecimalAction;
0 ignored issues
show
Documentation Bug introduced by
It seems like $customerAddressDecimalAction of type TechDivision\Import\Dbal\Actions\ActionInterface is incompatible with the declared type \TechDivision\Import\Dbal\Actions\ActionInterface of property $customerAddressDecimalAction.

Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..

Loading history...
383
    }
384
385
    /**
386
     * Return's the action with the customer address decimal attribute CRUD methods.
387
     *
388
     * @return \TechDivision\Import\Dbal\Actions\ActionInterface The action instance
389
     */
390
    public function getCustomerAddressDecimalAction()
391
    {
392
        return $this->customerAddressDecimalAction;
393
    }
394
395
    /**
396
     * Set's the action with the customer address datetime attribute CRUD methods.
397
     *
398
     * @param \TechDivision\Import\Dbal\Actions\ActionInterface $customerAddressDatetimeAction The action with the customer datetime attriute CRUD methods
399
     *
400
     * @return void
401
     */
402
    public function setCustomerAddressDatetimeAction(ActionInterface $customerAddressDatetimeAction)
403
    {
404
        $this->customerAddressDatetimeAction = $customerAddressDatetimeAction;
405
    }
406
407
    /**
408
     * Return's the action with the customer address datetime attribute CRUD methods.
409
     *
410
     * @return \TechDivision\Import\Dbal\Actions\ActionInterface The action instance
411
     */
412
    public function getCustomerAddressDatetimeAction()
413
    {
414
        return $this->customerAddressDatetimeAction;
415
    }
416
417
    /**
418
     * Set's the repository to access EAV attribute option values.
419
     *
420
     * @param \TechDivision\Import\Repositories\EavAttributeOptionValueRepositoryInterface $eavAttributeOptionValueRepository The repository to access EAV attribute option values
421
     *
422
     * @return void
423
     */
424
    public function setEavAttributeOptionValueRepository(EavAttributeOptionValueRepositoryInterface $eavAttributeOptionValueRepository)
425
    {
426
        $this->eavAttributeOptionValueRepository = $eavAttributeOptionValueRepository;
427
    }
428
429
    /**
430
     * Return's the repository to access EAV attribute option values.
431
     *
432
     * @return \TechDivision\Import\Repositories\EavAttributeOptionValueRepositoryInterface The repository instance
433
     */
434
    public function getEavAttributeOptionValueRepository()
435
    {
436
        return $this->eavAttributeOptionValueRepository;
437
    }
438
439
    /**
440
     * Set's the repository to access EAV attributes.
441
     *
442
     * @param \TechDivision\Import\Repositories\EavAttributeRepositoryInterface $eavAttributeRepository The repository to access EAV attributes
443
     *
444
     * @return void
445
     */
446
    public function setEavAttributeRepository(EavAttributeRepositoryInterface $eavAttributeRepository)
447
    {
448
        $this->eavAttributeRepository = $eavAttributeRepository;
449
    }
450
451
    /**
452
     * Return's the repository to access EAV attributes.
453
     *
454
     * @return \TechDivision\Import\Repositories\EavAttributeRepositoryInterface The repository instance
455
     */
456
    public function getEavAttributeRepository()
457
    {
458
        return $this->eavAttributeRepository;
459
    }
460
461
    /**
462
     * Set's the repository to access EAV entity types.
463
     *
464
     * @param \TechDivision\Import\Repositories\EavEntityTypeRepositoryInterface $eavEntityTypeRepository The repository to access EAV entity types
465
     *
466
     * @return void
467
     */
468
    public function setEavEntityTypeRepository(EavEntityTypeRepositoryInterface $eavEntityTypeRepository)
469
    {
470
        $this->eavEntityTypeRepository = $eavEntityTypeRepository;
471
    }
472
473
    /**
474
     * Return's the repository to access EAV entity types.
475
     *
476
     * @return \TechDivision\Import\Repositories\EavEntityTypeRepositoryInterface The repository instance
477
     */
478
    public function getEavEntityTypeRepository()
479
    {
480
        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...
481
    }
482
483
    /**
484
     * Set's the assembler to load the customer address attributes with.
485
     *
486
     * @param \TechDivision\Import\Customer\Address\Assemblers\CustomerAddressAttributeAssemblerInterface $customerAddressAttributeAssembler The assembler instance
487
     *
488
     * @return void
489
     */
490
    public function setCustomerAddressAttributeAssembler(CustomerAddressAttributeAssemblerInterface $customerAddressAttributeAssembler)
491
    {
492
        $this->customerAddressAttributeAssembler = $customerAddressAttributeAssembler;
493
    }
494
495
    /**
496
     * Return's the assembler to load the customer address attributes with.
497
     *
498
     * @return \TechDivision\Import\Customer\Address\Assemblers\CustomerAddressAttributeAssemblerInterface The assembler instance
499
     */
500
    public function getCustomerAddressAttributeAssembler()
501
    {
502
        return $this->customerAddressAttributeAssembler;
503
    }
504
505
    /**
506
     * Return's an array with the available EAV attributes for the passed is user defined flag.
507
     *
508
     * @param integer $isUserDefined The flag itself
509
     *
510
     * @return array The array with the EAV attributes matching the passed flag
511
     */
512
    public function getEavAttributeByIsUserDefined($isUserDefined = 1)
513
    {
514
        return $this->getEavAttributeRepository()->findAllByIsUserDefined($isUserDefined);
515
    }
516
517
    /**
518
     * Intializes the existing attributes for the entity with the passed entity ID.
519
     *
520
     * @param integer $entityId The entity ID of the entity to load the attributes for
521
     *
522
     * @return array The entity attributes
523
     */
524
    public function getCustomerAddressAttributesByEntityId($entityId)
525
    {
526
        return $this->getCustomerAddressAttributeAssembler()->getCustomerAddressAttributesByEntityId($entityId);
527
    }
528
529
    /**
530
     * Load's and return's the EAV attribute option value with the passed entity type ID, code, store ID and value.
531
     *
532
     * @param string  $entityTypeId  The entity type ID of the EAV attribute to load the option value for
533
     * @param string  $attributeCode The code of the EAV attribute option to load
534
     * @param integer $storeId       The store ID of the attribute option to load
535
     * @param string  $value         The value of the attribute option to load
536
     *
537
     * @return array The EAV attribute option value
538
     */
539
    public function loadAttributeOptionValueByEntityTypeIdAndAttributeCodeAndStoreIdAndValue($entityTypeId, $attributeCode, $storeId, $value)
540
    {
541
        return $this->getEavAttributeOptionValueRepository()->findOneByEntityTypeIdAndAttributeCodeAndStoreIdAndValue($entityTypeId, $attributeCode, $storeId, $value);
542
    }
543
544
    /**
545
     * Return's an EAV entity type with the passed entity type code.
546
     *
547
     * @param string $entityTypeCode The code of the entity type to return
548
     *
549
     * @return array The entity type with the passed entity type code
550
     */
551
    public function loadEavEntityTypeByEntityTypeCode($entityTypeCode)
552
    {
553
        return $this->getEavEntityTypeRepository()->findOneByEntityTypeCode($entityTypeCode);
554
    }
555
556
    /**
557
     * Return's the customer with the passed entity ID.
558
     *
559
     * @param integer $id The entity ID of the customer to return
560
     *
561
     * @return array|null The customer
562
     */
563
    public function loadCustomerAddress($id)
564
    {
565
        return $this->getCustomerAddressRepository()->load($id);
566
    }
567
568
569
    /**
570
     * Return's the customer with the passed increment ID.
571
     *
572
     * @param string|integer $incrementId The increment ID of the customer to return
573
     *
574
     * @return array|null The customer
575
     */
576
    public function loadCustomerAddressByIncrementId($incrementId)
577
    {
578
        return $this->getCustomerAddressRepository()->loadByIncrementId($incrementId);
579
    }
580
581
    /**
582
     * Return's the customer with the passed email and website ID.
583
     *
584
     * @param string $email     The email of the customer to return
585
     * @param string $websiteId The website ID of the customer to return
586
     *
587
     * @return array|null The customer
588
     */
589
    public function loadCustomerByEmailAndWebsiteId($email, $websiteId)
590
    {
591
        return $this->getCustomerRepository()->findOneByEmailAndWebsiteId($email, $websiteId);
592
    }
593
594
    /**
595
     * Persist's the passed customer address data and return's the ID.
596
     *
597
     * @param array       $customerAddress The customer data to persist
598
     * @param string|null $name            The name of the prepared statement that has to be executed
599
     *
600
     * @return string The ID of the persisted entity
601
     */
602
    public function persistCustomerAddress($customerAddress, $name = null)
603
    {
604
        return $this->getCustomerAddressAction()->persist($customerAddress, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Dbal...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
        return $this->getCustomerAddressAction()->/** @scrutinizer ignore-call */ persist($customerAddress, $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 introduced by
Are you sure the usage of $this->getCustomerAddres...customerAddress, $name) targeting TechDivision\Import\Dbal...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...
Bug Best Practice introduced by
The expression return $this->getCustome...customerAddress, $name) returns the type void which is incompatible with the documented return type string.
Loading history...
605
    }
606
607
    /**
608
     * Persist's the passed customer address varchar 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 persistCustomerAddressVarcharAttribute($attribute, $name = null)
616
    {
617
        $this->getCustomerAddressVarcharAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Dbal...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->getCustomerAddressVarcharAction()->/** @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
     * Persist's the passed customer address integer attribute.
622
     *
623
     * @param array       $attribute The attribute to persist
624
     * @param string|null $name      The name of the prepared statement that has to be executed
625
     *
626
     * @return void
627
     */
628
    public function persistCustomerAddressIntAttribute($attribute, $name = null)
629
    {
630
        $this->getCustomerAddressIntAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Dbal...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

630
        $this->getCustomerAddressIntAction()->/** @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...
631
    }
632
633
    /**
634
     * Persist's the passed customer address decimal attribute.
635
     *
636
     * @param array       $attribute The attribute to persist
637
     * @param string|null $name      The name of the prepared statement that has to be executed
638
     *
639
     * @return void
640
     */
641
    public function persistCustomerAddressDecimalAttribute($attribute, $name = null)
642
    {
643
        $this->getCustomerAddressDecimalAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Dbal...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

643
        $this->getCustomerAddressDecimalAction()->/** @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...
644
    }
645
646
    /**
647
     * Persist's the passed customer address datetime attribute.
648
     *
649
     * @param array       $attribute The attribute to persist
650
     * @param string|null $name      The name of the prepared statement that has to be executed
651
     *
652
     * @return void
653
     */
654
    public function persistCustomerAddressDatetimeAttribute($attribute, $name = null)
655
    {
656
        $this->getCustomerAddressDatetimeAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Dbal...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

656
        $this->getCustomerAddressDatetimeAction()->/** @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...
657
    }
658
659
    /**
660
     * Persist's the passed customer address text attribute.
661
     *
662
     * @param array       $attribute The attribute to persist
663
     * @param string|null $name      The name of the prepared statement that has to be executed
664
     *
665
     * @return void
666
     */
667
    public function persistCustomerAddressTextAttribute($attribute, $name = null)
668
    {
669
        $this->getCustomerAddressTextAction()->persist($attribute, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Dbal...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

669
        $this->getCustomerAddressTextAction()->/** @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...
670
    }
671
672
    /**
673
     * Delete's the entity 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 deleteCustomerAddress($row, $name = null)
681
    {
682
        $this->getCustomerAddressAction()->delete($row, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Dbal...tionInterface::delete() 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

682
        $this->getCustomerAddressAction()->/** @scrutinizer ignore-call */ delete($row, $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...
683
    }
684
685
    /**
686
     * Delete's the customer address datetime 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 deleteCustomerAddressDatetimeAttribute($row, $name = null)
694
    {
695
        $this->getCustomerAddressDatetimeAction()->delete($row, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Dbal...tionInterface::delete() 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

695
        $this->getCustomerAddressDatetimeAction()->/** @scrutinizer ignore-call */ delete($row, $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...
696
    }
697
698
    /**
699
     * Delete's the customer address decimal attribute with the passed attributes.
700
     *
701
     * @param array       $row  The attributes of the entity to delete
702
     * @param string|null $name The name of the prepared statement that has to be executed
703
     *
704
     * @return void
705
     */
706
    public function deleteCustomerAddressDecimalAttribute($row, $name = null)
707
    {
708
        $this->getCustomerAddressDecimalAction()->delete($row, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Dbal...tionInterface::delete() 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

708
        $this->getCustomerAddressDecimalAction()->/** @scrutinizer ignore-call */ delete($row, $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...
709
    }
710
711
    /**
712
     * Delete's the customer address integer attribute with the passed attributes.
713
     *
714
     * @param array       $row  The attributes of the entity to delete
715
     * @param string|null $name The name of the prepared statement that has to be executed
716
     *
717
     * @return void
718
     */
719
    public function deleteCustomerAddressIntAttribute($row, $name = null)
720
    {
721
        $this->getCustomerAddressIntAction()->delete($row, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Dbal...tionInterface::delete() 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

721
        $this->getCustomerAddressIntAction()->/** @scrutinizer ignore-call */ delete($row, $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...
722
    }
723
724
    /**
725
     * Delete's the customer address text attribute with the passed attributes.
726
     *
727
     * @param array       $row  The attributes of the entity to delete
728
     * @param string|null $name The name of the prepared statement that has to be executed
729
     *
730
     * @return void
731
     */
732
    public function deleteCustomerAddressTextAttribute($row, $name = null)
733
    {
734
        $this->getCustomerAddressTextAction()->delete($row, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Dbal...tionInterface::delete() 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

734
        $this->getCustomerAddressTextAction()->/** @scrutinizer ignore-call */ delete($row, $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...
735
    }
736
737
    /**
738
     * Delete's the customer address varchar attribute with the passed attributes.
739
     *
740
     * @param array       $row  The attributes of the entity to delete
741
     * @param string|null $name The name of the prepared statement that has to be executed
742
     *
743
     * @return void
744
     */
745
    public function deleteCustomerAddressVarcharAttribute($row, $name = null)
746
    {
747
        $this->getCustomerAddressVarcharAction()->delete($row, $name);
0 ignored issues
show
Unused Code introduced by
The call to TechDivision\Import\Dbal...tionInterface::delete() 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

747
        $this->getCustomerAddressVarcharAction()->/** @scrutinizer ignore-call */ delete($row, $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...
748
    }
749
750
    /**
751
     * Clean-Up the repositories to free memory.
752
     *
753
     * @return void
754
     */
755
    public function cleanUp()
756
    {
757
        // flush the cache
758
    }
759
}
760