Completed
Push — ezp-27864-rest-delete-transl-f... ( 9b7559...985372 )
by
unknown
14:16
created

ExceptionConversion::deleteTranslatedFields()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 10
Code Lines 7

Duplication

Lines 10
Ratio 100 %

Importance

Changes 0
Metric Value
cc 3
eloc 7
nc 3
nop 3
dl 10
loc 10
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * File containing the Content Gateway base class.
5
 *
6
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
7
 * @license For full copyright and license information view LICENSE file distributed with this source code.
8
 */
9
namespace eZ\Publish\Core\Persistence\Legacy\Content\Gateway;
10
11
use eZ\Publish\Core\Persistence\Legacy\Content\Gateway;
12
use eZ\Publish\Core\Persistence\Legacy\Content\StorageFieldValue;
13
use eZ\Publish\SPI\Persistence\Content;
14
use eZ\Publish\SPI\Persistence\Content\CreateStruct;
15
use eZ\Publish\SPI\Persistence\Content\UpdateStruct;
16
use eZ\Publish\SPI\Persistence\Content\MetadataUpdateStruct;
17
use eZ\Publish\SPI\Persistence\Content\VersionInfo;
18
use eZ\Publish\SPI\Persistence\Content\Field;
19
use eZ\Publish\SPI\Persistence\Content\Relation\CreateStruct as RelationCreateStruct;
20
use Doctrine\DBAL\DBALException;
21
use PDOException;
22
use RuntimeException;
23
24
/**
25
 * Base class for content gateways.
26
 */
27
class ExceptionConversion extends Gateway
28
{
29
    /**
30
     * The wrapped gateway.
31
     *
32
     * @var Gateway
33
     */
34
    protected $innerGateway;
35
36
    /**
37
     * Creates a new exception conversion gateway around $innerGateway.
38
     *
39
     * @param Gateway $innerGateway
40
     */
41
    public function __construct(Gateway $innerGateway)
42
    {
43
        $this->innerGateway = $innerGateway;
44
    }
45
46
    /**
47
     * Get context definition for external storage layers.
48
     *
49
     * @return array
50
     */
51
    public function getContext()
52
    {
53
        try {
54
            return $this->innerGateway->getContext();
55
        } catch (DBALException $e) {
56
            throw new RuntimeException('Database error', 0, $e);
57
        } catch (PDOException $e) {
58
            throw new RuntimeException('Database error', 0, $e);
59
        }
60
    }
61
62
    /**
63
     * Inserts a new content object.
64
     *
65
     * @param \eZ\Publish\SPI\Persistence\Content\CreateStruct $struct
66
     * @param mixed $currentVersionNo
67
     *
68
     * @return int ID
69
     */
70
    public function insertContentObject(CreateStruct $struct, $currentVersionNo = 1)
71
    {
72
        try {
73
            return $this->innerGateway->insertContentObject($struct, $currentVersionNo);
74
        } catch (DBALException $e) {
75
            throw new RuntimeException('Database error', 0, $e);
76
        } catch (PDOException $e) {
77
            throw new RuntimeException('Database error', 0, $e);
78
        }
79
    }
80
81
    /**
82
     * Inserts a new version.
83
     *
84
     * @param \eZ\Publish\SPI\Persistence\Content\VersionInfo $versionInfo
85
     * @param \eZ\Publish\SPI\Persistence\Content\Field[] $fields
86
     *
87
     * @return int ID
88
     */
89
    public function insertVersion(VersionInfo $versionInfo, array $fields)
90
    {
91
        try {
92
            return $this->innerGateway->insertVersion($versionInfo, $fields);
93
        } catch (DBALException $e) {
94
            throw new RuntimeException('Database error', 0, $e);
95
        } catch (PDOException $e) {
96
            throw new RuntimeException('Database error', 0, $e);
97
        }
98
    }
99
100
    /**
101
     * Updates an existing content identified by $contentId in respect to $struct.
102
     *
103
     * @param int $contentId
104
     * @param \eZ\Publish\SPI\Persistence\Content\MetadataUpdateStruct $struct
105
     * @param \eZ\Publish\SPI\Persistence\Content\VersionInfo $prePublishVersionInfo Provided on publish
106
     */
107
    public function updateContent($contentId, MetadataUpdateStruct $struct, VersionInfo $prePublishVersionInfo = null)
108
    {
109
        try {
110
            return $this->innerGateway->updateContent($contentId, $struct, $prePublishVersionInfo);
111
        } catch (DBALException $e) {
112
            throw new RuntimeException('Database error', 0, $e);
113
        } catch (PDOException $e) {
114
            throw new RuntimeException('Database error', 0, $e);
115
        }
116
    }
117
118
    /**
119
     * Updates version $versionNo for content identified by $contentId, in respect to $struct.
120
     *
121
     * @param int $contentId
122
     * @param int $versionNo
123
     * @param \eZ\Publish\SPI\Persistence\Content\UpdateStruct $struct
124
     */
125
    public function updateVersion($contentId, $versionNo, UpdateStruct $struct)
126
    {
127
        try {
128
            return $this->innerGateway->updateVersion($contentId, $versionNo, $struct);
129
        } catch (DBALException $e) {
130
            throw new RuntimeException('Database error', 0, $e);
131
        } catch (PDOException $e) {
132
            throw new RuntimeException('Database error', 0, $e);
133
        }
134
    }
135
136
    /**
137
     * Updates "always available" flag for content identified by $contentId, in respect to $alwaysAvailable.
138
     *
139
     * @param int $contentId
140
     * @param bool $newAlwaysAvailable New "always available" value
141
     */
142
    public function updateAlwaysAvailableFlag($contentId, $newAlwaysAvailable)
143
    {
144
        try {
145
            return $this->innerGateway->updateAlwaysAvailableFlag($contentId, $newAlwaysAvailable);
146
        } catch (DBALException $e) {
147
            throw new RuntimeException('Database error', 0, $e);
148
        } catch (PDOException $e) {
149
            throw new RuntimeException('Database error', 0, $e);
150
        }
151
    }
152
153
    /**
154
     * Sets the state of object identified by $contentId and $version to $state.
155
     *
156
     * The $status can be one of STATUS_DRAFT, STATUS_PUBLISHED, STATUS_ARCHIVED
157
     *
158
     * @param int $contentId
159
     * @param int $version
160
     * @param int $status
161
     *
162
     * @return bool
163
     */
164
    public function setStatus($contentId, $version, $status)
165
    {
166
        try {
167
            return $this->innerGateway->setStatus($contentId, $version, $status);
168
        } catch (DBALException $e) {
169
            throw new RuntimeException('Database error', 0, $e);
170
        } catch (PDOException $e) {
171
            throw new RuntimeException('Database error', 0, $e);
172
        }
173
    }
174
175
    /**
176
     * Inserts a new field.
177
     *
178
     * Only used when a new field is created (i.e. a new object or a field in a
179
     * new language!). After that, field IDs need to stay the same, only the
180
     * version number changes.
181
     *
182
     * @param \eZ\Publish\SPI\Persistence\Content $content
183
     * @param \eZ\Publish\SPI\Persistence\Content\Field $field
184
     * @param \eZ\Publish\Core\Persistence\Legacy\Content\StorageFieldValue $value
185
     *
186
     * @return int ID
187
     */
188 View Code Duplication
    public function insertNewField(Content $content, Field $field, StorageFieldValue $value)
189
    {
190
        try {
191
            return $this->innerGateway->insertNewField($content, $field, $value);
192
        } catch (DBALException $e) {
193
            throw new RuntimeException('Database error', 0, $e);
194
        } catch (PDOException $e) {
195
            throw new RuntimeException('Database error', 0, $e);
196
        }
197
    }
198
199
    /**
200
     * Inserts an existing field.
201
     *
202
     * Used to insert a field with an exsting ID but a new version number.
203
     *
204
     * @param Content $content
205
     * @param Field $field
206
     * @param StorageFieldValue $value
207
     */
208 View Code Duplication
    public function insertExistingField(Content $content, Field $field, StorageFieldValue $value)
209
    {
210
        try {
211
            return $this->innerGateway->insertExistingField($content, $field, $value);
212
        } catch (DBALException $e) {
213
            throw new RuntimeException('Database error', 0, $e);
214
        } catch (PDOException $e) {
215
            throw new RuntimeException('Database error', 0, $e);
216
        }
217
    }
218
219
    /**
220
     * Updates an existing field.
221
     *
222
     * @param Field $field
223
     * @param StorageFieldValue $value
224
     */
225 View Code Duplication
    public function updateField(Field $field, StorageFieldValue $value)
226
    {
227
        try {
228
            return $this->innerGateway->updateField($field, $value);
229
        } catch (DBALException $e) {
230
            throw new RuntimeException('Database error', 0, $e);
231
        } catch (PDOException $e) {
232
            throw new RuntimeException('Database error', 0, $e);
233
        }
234
    }
235
236
    /**
237
     * Updates an existing, non-translatable field.
238
     *
239
     * @param \eZ\Publish\SPI\Persistence\Content\Field $field
240
     * @param \eZ\Publish\Core\Persistence\Legacy\Content\StorageFieldValue $value
241
     * @param int $contentId
242
     */
243 View Code Duplication
    public function updateNonTranslatableField(
244
        Field $field,
245
        StorageFieldValue $value,
246
        $contentId
247
    ) {
248
        try {
249
            return $this->innerGateway->updateNonTranslatableField($field, $value, $contentId);
250
        } catch (DBALException $e) {
251
            throw new RuntimeException('Database error', 0, $e);
252
        } catch (PDOException $e) {
253
            throw new RuntimeException('Database error', 0, $e);
254
        }
255
    }
256
257
    /**
258
     * Loads data for a content object.
259
     *
260
     * Returns an array with the relevant data.
261
     *
262
     * @param mixed $contentId
263
     * @param mixed $version
264
     * @param string[] $translations
265
     *
266
     * @return array
267
     */
268
    public function load($contentId, $version, array $translations = null)
269
    {
270
        try {
271
            return $this->innerGateway->load($contentId, $version, $translations);
272
        } catch (DBALException $e) {
273
            throw new RuntimeException('Database error', 0, $e);
274
        } catch (PDOException $e) {
275
            throw new RuntimeException('Database error', 0, $e);
276
        }
277
    }
278
279
    /**
280
     * Loads data for a content object identified by its remote ID.
281
     *
282
     * Returns an array with the relevant data.
283
     *
284
     * @param mixed $remoteId
285
     *
286
     * @return array
287
     */
288
    public function loadContentInfoByRemoteId($remoteId)
289
    {
290
        try {
291
            return $this->innerGateway->loadContentInfoByRemoteId($remoteId);
292
        } catch (DBALException $e) {
293
            throw new \RuntimeException('Database error', 0, $e);
294
        } catch (\PDOException $e) {
295
            throw new \RuntimeException('Database error', 0, $e);
296
        }
297
    }
298
299
    /**
300
     * Loads info for content identified by $contentId.
301
     * Will basically return a hash containing all field values for ezcontentobject table plus following keys:
302
     *  - always_available => Boolean indicating if content's language mask contains alwaysAvailable bit field
303
     *  - main_language_code => Language code for main (initial) language. E.g. "eng-GB".
304
     *
305
     * @param int $contentId
306
     *
307
     * @throws \eZ\Publish\Core\Base\Exceptions\NotFoundException
308
     *
309
     * @return array
310
     */
311
    public function loadContentInfo($contentId)
312
    {
313
        try {
314
            return $this->innerGateway->loadContentInfo($contentId);
315
        } catch (DBALException $e) {
316
            throw new RuntimeException('Database error', 0, $e);
317
        } catch (PDOException $e) {
318
            throw new RuntimeException('Database error', 0, $e);
319
        }
320
    }
321
322
    /**
323
     * Loads version info for content identified by $contentId and $versionNo.
324
     * Will basically return a hash containing all field values from ezcontentobject_version table plus following keys:
325
     *  - names => Hash of content object names. Key is the language code, value is the name.
326
     *  - languages => Hash of language ids. Key is the language code (e.g. "eng-GB"), value is the language numeric id without the always available bit.
327
     *  - initial_language_code => Language code for initial language in this version.
328
     *
329
     * @param int $contentId
330
     * @param int $versionNo
331
     *
332
     * @return array
333
     */
334
    public function loadVersionInfo($contentId, $versionNo)
335
    {
336
        try {
337
            return $this->innerGateway->loadVersionInfo($contentId, $versionNo);
338
        } catch (DBALException $e) {
339
            throw new RuntimeException('Database error', 0, $e);
340
        } catch (PDOException $e) {
341
            throw new RuntimeException('Database error', 0, $e);
342
        }
343
    }
344
345
    /**
346
     * Returns data for all versions with given status created by the given $userId.
347
     *
348
     * @param int $userId
349
     * @param int $status
350
     *
351
     * @return string[][]
352
     */
353
    public function listVersionsForUser($userId, $status = VersionInfo::STATUS_DRAFT)
354
    {
355
        try {
356
            return $this->innerGateway->listVersionsForUser($userId, $status);
357
        } catch (DBALException $e) {
358
            throw new RuntimeException('Database error', 0, $e);
359
        } catch (PDOException $e) {
360
            throw new RuntimeException('Database error', 0, $e);
361
        }
362
    }
363
364
    /**
365
     * Returns all version data for the given $contentId.
366
     *
367
     * Result is returned with oldest version first (using version id as it has index and is auto increment).
368
     *
369
     * @param mixed $contentId
370
     * @param mixed|null $status Optional argument to filter versions by status, like {@see VersionInfo::STATUS_ARCHIVED}.
371
     * @param int $limit Limit for items returned, -1 means none.
372
     *
373
     * @return string[][]
374
     */
375 View Code Duplication
    public function listVersions($contentId, $status = null, $limit = -1)
376
    {
377
        try {
378
            return $this->innerGateway->listVersions($contentId, $status, $limit);
379
        } catch (DBALException $e) {
380
            throw new RuntimeException('Database error', 0, $e);
381
        } catch (PDOException $e) {
382
            throw new RuntimeException('Database error', 0, $e);
383
        }
384
    }
385
386
    /**
387
     * Returns all version numbers for the given $contentId.
388
     *
389
     * @param mixed $contentId
390
     *
391
     * @return int[]
392
     */
393
    public function listVersionNumbers($contentId)
394
    {
395
        try {
396
            return $this->innerGateway->listVersionNumbers($contentId);
397
        } catch (DBALException $e) {
398
            throw new RuntimeException('Database error', 0, $e);
399
        } catch (PDOException $e) {
400
            throw new RuntimeException('Database error', 0, $e);
401
        }
402
    }
403
404
    /**
405
     * Returns last version number for content identified by $contentId.
406
     *
407
     * @param int $contentId
408
     *
409
     * @return int
410
     */
411
    public function getLastVersionNumber($contentId)
412
    {
413
        try {
414
            return $this->innerGateway->getLastVersionNumber($contentId);
415
        } catch (DBALException $e) {
416
            throw new RuntimeException('Database error', 0, $e);
417
        } catch (PDOException $e) {
418
            throw new RuntimeException('Database error', 0, $e);
419
        }
420
    }
421
422
    /**
423
     * Returns all IDs for locations that refer to $contentId.
424
     *
425
     * @param int $contentId
426
     *
427
     * @return int[]
428
     */
429
    public function getAllLocationIds($contentId)
430
    {
431
        try {
432
            return $this->innerGateway->getAllLocationIds($contentId);
433
        } catch (DBALException $e) {
434
            throw new RuntimeException('Database error', 0, $e);
435
        } catch (PDOException $e) {
436
            throw new RuntimeException('Database error', 0, $e);
437
        }
438
    }
439
440
    /**
441
     * Returns all field IDs of $contentId grouped by their type.
442
     * If $versionNo is set only field IDs for that version are returned.
443
     * If $languageCode is set, only field IDs for that language are returned.
444
     *
445
     * @param int $contentId
446
     * @param int|null $versionNo
447
     * @param string|null $languageCode
448
     *
449
     * @return int[][]
450
     */
451 View Code Duplication
    public function getFieldIdsByType($contentId, $versionNo = null, $languageCode = null)
452
    {
453
        try {
454
            return $this->innerGateway->getFieldIdsByType($contentId, $versionNo, $languageCode);
455
        } catch (DBALException $e) {
456
            throw new RuntimeException('Database error', 0, $e);
457
        } catch (PDOException $e) {
458
            throw new RuntimeException('Database error', 0, $e);
459
        }
460
    }
461
462
    /**
463
     * Deletes relations to and from $contentId.
464
     * If $versionNo is set only relations for that version are deleted.
465
     *
466
     * @param int $contentId
467
     * @param int|null $versionNo
468
     */
469
    public function deleteRelations($contentId, $versionNo = null)
470
    {
471
        try {
472
            return $this->innerGateway->deleteRelations($contentId, $versionNo);
473
        } catch (DBALException $e) {
474
            throw new RuntimeException('Database error', 0, $e);
475
        } catch (PDOException $e) {
476
            throw new RuntimeException('Database error', 0, $e);
477
        }
478
    }
479
480
    /**
481
     * Removes relations to Content with $contentId from Relation and RelationList field type fields.
482
     *
483
     * @param int $contentId
484
     */
485
    public function removeReverseFieldRelations($contentId)
486
    {
487
        try {
488
            return $this->innerGateway->removeReverseFieldRelations($contentId);
489
        } catch (DBALException $e) {
490
            throw new RuntimeException('Database error', 0, $e);
491
        } catch (PDOException $e) {
492
            throw new RuntimeException('Database error', 0, $e);
493
        }
494
    }
495
496
    /**
497
     * Deletes the field with the given $fieldId.
498
     *
499
     * @param int $fieldId
500
     */
501
    public function deleteField($fieldId)
502
    {
503
        try {
504
            return $this->innerGateway->deleteField($fieldId);
505
        } catch (DBALException $e) {
506
            throw new RuntimeException('Database error', 0, $e);
507
        } catch (PDOException $e) {
508
            throw new RuntimeException('Database error', 0, $e);
509
        }
510
    }
511
512
    /**
513
     * Deletes all fields of $contentId in all versions.
514
     * If $versionNo is set only fields for that version are deleted.
515
     *
516
     * @param int $contentId
517
     * @param int|null $versionNo
518
     */
519
    public function deleteFields($contentId, $versionNo = null)
520
    {
521
        try {
522
            return $this->innerGateway->deleteFields($contentId, $versionNo);
523
        } catch (DBALException $e) {
524
            throw new RuntimeException('Database error', 0, $e);
525
        } catch (PDOException $e) {
526
            throw new RuntimeException('Database error', 0, $e);
527
        }
528
    }
529
530
    /**
531
     * Deletes all versions of $contentId.
532
     * If $versionNo is set only that version is deleted.
533
     *
534
     * @param int $contentId
535
     * @param int|null $versionNo
536
     */
537
    public function deleteVersions($contentId, $versionNo = null)
538
    {
539
        try {
540
            return $this->innerGateway->deleteVersions($contentId, $versionNo);
541
        } catch (DBALException $e) {
542
            throw new RuntimeException('Database error', 0, $e);
543
        } catch (PDOException $e) {
544
            throw new RuntimeException('Database error', 0, $e);
545
        }
546
    }
547
548
    /**
549
     * Deletes all names of $contentId.
550
     * If $versionNo is set only names for that version are deleted.
551
     *
552
     * @param int $contentId
553
     * @param int|null $versionNo
554
     */
555
    public function deleteNames($contentId, $versionNo = null)
556
    {
557
        try {
558
            return $this->innerGateway->deleteNames($contentId, $versionNo);
559
        } catch (DBALException $e) {
560
            throw new RuntimeException('Database error', 0, $e);
561
        } catch (PDOException $e) {
562
            throw new RuntimeException('Database error', 0, $e);
563
        }
564
    }
565
566
    /**
567
     * Sets the content object name.
568
     *
569
     * @param int $contentId
570
     * @param int $version
571
     * @param string $name
572
     * @param string $language
573
     */
574
    public function setName($contentId, $version, $name, $language)
575
    {
576
        try {
577
            return $this->innerGateway->setName($contentId, $version, $name, $language);
578
        } catch (DBALException $e) {
579
            throw new RuntimeException('Database error', 0, $e);
580
        } catch (PDOException $e) {
581
            throw new RuntimeException('Database error', 0, $e);
582
        }
583
    }
584
585
    /**
586
     * Deletes the actual content object referred to by $contentId.
587
     *
588
     * @param int $contentId
589
     */
590
    public function deleteContent($contentId)
591
    {
592
        try {
593
            return $this->innerGateway->deleteContent($contentId);
594
        } catch (DBALException $e) {
595
            throw new RuntimeException('Database error', 0, $e);
596
        } catch (PDOException $e) {
597
            throw new RuntimeException('Database error', 0, $e);
598
        }
599
    }
600
601
    /**
602
     * Loads data of related to/from $contentId.
603
     *
604
     * @param int $contentId
605
     * @param int $contentVersionNo
606
     * @param int $relationType
607
     *
608
     * @return mixed[][] Content data, array structured like {@see \eZ\Publish\Core\Persistence\Legacy\Content\Gateway::load()}
609
     */
610
    public function loadRelations($contentId, $contentVersionNo = null, $relationType = null)
611
    {
612
        try {
613
            return $this->innerGateway->loadRelations($contentId, $contentVersionNo, $relationType);
614
        } catch (DBALException $e) {
615
            throw new RuntimeException('Database error', 0, $e);
616
        } catch (PDOException $e) {
617
            throw new RuntimeException('Database error', 0, $e);
618
        }
619
    }
620
621
    /**
622
     * Loads data of related to/from $contentId.
623
     *
624
     * @param int $contentId
625
     * @param bool $reverse Reverse relation, default false
0 ignored issues
show
Bug introduced by
There is no parameter named $reverse. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
626
     * @param int $contentVersionNo
0 ignored issues
show
Bug introduced by
There is no parameter named $contentVersionNo. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
627
     * @param int $relationType
628
     *
629
     * @return mixed[][] Content data, array structured like {@see \eZ\Publish\Core\Persistence\Legacy\Content\Gateway::load()}
630
     */
631
    public function loadReverseRelations($contentId, $relationType = null)
632
    {
633
        try {
634
            return $this->innerGateway->loadReverseRelations($contentId, $relationType);
635
        } catch (DBALException $e) {
636
            throw new RuntimeException('Database error', 0, $e);
637
        } catch (PDOException $e) {
638
            throw new RuntimeException('Database error', 0, $e);
639
        }
640
    }
641
642
    /**
643
     * Deletes the relation with the given $relationId.
644
     *
645
     * @param int $relationId
646
     * @param int $type {@see \eZ\Publish\API\Repository\Values\Content\Relation::COMMON,
647
     *                 \eZ\Publish\API\Repository\Values\Content\Relation::EMBED,
648
     *                 \eZ\Publish\API\Repository\Values\Content\Relation::LINK,
649
     *                 \eZ\Publish\API\Repository\Values\Content\Relation::FIELD}
650
     */
651
    public function deleteRelation($relationId, $type)
652
    {
653
        try {
654
            return $this->innerGateway->deleteRelation($relationId, $type);
655
        } catch (DBALException $e) {
656
            throw new RuntimeException('Database error', 0, $e);
657
        } catch (PDOException $e) {
658
            throw new RuntimeException('Database error', 0, $e);
659
        }
660
    }
661
662
    /**
663
     * Inserts a new relation database record.
664
     *
665
     * @param \eZ\Publish\SPI\Persistence\Content\Relation\CreateStruct $createStruct
0 ignored issues
show
Documentation introduced by
There is no parameter named $createStruct. Did you maybe mean $struct?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function. It has, however, found a similar but not annotated parameter which might be a good fit.

Consider the following example. The parameter $ireland is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $ireland
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was changed, but the annotation was not.

Loading history...
666
     *
667
     * @return int ID the inserted ID
668
     */
669
    public function insertRelation(RelationCreateStruct $struct)
670
    {
671
        try {
672
            return $this->innerGateway->insertRelation($struct);
673
        } catch (DBALException $e) {
674
            throw new RuntimeException('Database error', 0, $e);
675
        } catch (PDOException $e) {
676
            throw new RuntimeException('Database error', 0, $e);
677
        }
678
    }
679
680
    /**
681
     * Returns all Content IDs for a given $contentTypeId.
682
     *
683
     * @param int $contentTypeId
684
     *
685
     * @return int[]
686
     */
687
    public function getContentIdsByContentTypeId($contentTypeId)
688
    {
689
        try {
690
            return $this->innerGateway->getContentIdsByContentTypeId($contentTypeId);
691
        } catch (DBALException $e) {
692
            throw new RuntimeException('Database error', 0, $e);
693
        } catch (PDOException $e) {
694
            throw new RuntimeException('Database error', 0, $e);
695
        }
696
    }
697
698
    /**
699
     * Load name data for set of content id's and corresponding version number.
700
     *
701
     * @param array[] $rows array of hashes with 'id' and 'version' to load names for
702
     *
703
     * @return array
704
     */
705
    public function loadVersionedNameData($rows)
706
    {
707
        try {
708
            return $this->innerGateway->loadVersionedNameData($rows);
709
        } catch (DBALException $e) {
710
            throw new RuntimeException('Database error', 0, $e);
711
        } catch (PDOException $e) {
712
            throw new RuntimeException('Database error', 0, $e);
713
        }
714
    }
715
716
    /**
717
     * Batch method for copying all relation meta data for copied Content object.
718
     *
719
     * {@inheritdoc}
720
     *
721
     * @param int $originalContentId
722
     * @param int $copiedContentId
723
     * @param int|null $versionNo If specified only copy for a given version number, otherwise all.
724
     */
725 View Code Duplication
    public function copyRelations($originalContentId, $copiedContentId, $versionNo = null)
726
    {
727
        try {
728
            return $this->innerGateway->copyRelations($originalContentId, $copiedContentId, $versionNo);
729
        } catch (DBALException $e) {
730
            throw new RuntimeException('Database error', 0, $e);
731
        } catch (PDOException $e) {
732
            throw new RuntimeException('Database error', 0, $e);
733
        }
734
    }
735
736
    /**
737
     * Remove the specified translation from all the Versions of a Content Object.
738
     *
739
     * @param int $contentId
740
     * @param string $languageCode language code of the translation
741
     */
742 View Code Duplication
    public function removeTranslationFromContent($contentId, $languageCode)
743
    {
744
        try {
745
            return $this->innerGateway->removeTranslationFromContent($contentId, $languageCode);
746
        } catch (DBALException $e) {
747
            throw new RuntimeException('Database error', 0, $e);
748
        } catch (PDOException $e) {
749
            throw new RuntimeException('Database error', 0, $e);
750
        }
751
    }
752
753
    /**
754
     * Delete the specified Translation from the given Version.
755
     *
756
     * @param int $contentId
757
     * @param int $versionNo
758
     * @param string $languageCode
759
     */
760 View Code Duplication
    public function deleteTranslationFromVersion($contentId, $versionNo, $languageCode)
761
    {
762
        try {
763
            return $this->innerGateway->deleteTranslationFromVersion($contentId, $versionNo, $languageCode);
764
        } catch (DBALException $e) {
765
            throw new RuntimeException('Database error', 0, $e);
766
        } catch (PDOException $e) {
767
            throw new RuntimeException('Database error', 0, $e);
768
        }
769
    }
770
771
    /**
772
     * Delete Content fields (attributes) for the given Translation.
773
     * If $versionNo is given, fields for that Version only will be deleted.
774
     *
775
     * @param string $languageCode
776
     * @param int $contentId
777
     * @param int $versionNo (optional) filter by versionNo
778
     */
779 View Code Duplication
    public function deleteTranslatedFields($languageCode, $contentId, $versionNo = null)
780
    {
781
        try {
782
            return $this->innerGateway->deleteTranslatedFields($languageCode, $contentId, $versionNo);
783
        } catch (DBALException $e) {
784
            throw new RuntimeException('Database error', 0, $e);
785
        } catch (PDOException $e) {
786
            throw new RuntimeException('Database error', 0, $e);
787
        }
788
    }
789
}
790