Completed
Push — master ( 3b0f4c...c1c946 )
by
unknown
39:12 queued 08:03
created

BeforeCreateContentDraftEvent   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 68
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 68
rs 10
c 0
b 0
f 0
wmc 9
lcom 1
cbo 1

8 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 11 1
A getContentInfo() 0 4 1
A getVersionInfo() 0 4 1
A getCreator() 0 4 1
A getLanguage() 0 4 1
A getContentDraft() 0 8 2
A setContentDraft() 0 4 1
A hasContentDraft() 0 4 1
1
<?php
2
3
/**
4
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
5
 * @license For full copyright and license information view LICENSE file distributed with this source code.
6
 */
7
declare(strict_types=1);
8
9
namespace eZ\Publish\API\Repository\Events\Content;
10
11
use eZ\Publish\API\Repository\Values\Content\Content;
12
use eZ\Publish\API\Repository\Values\Content\ContentInfo;
13
use eZ\Publish\API\Repository\Values\Content\Language;
14
use eZ\Publish\API\Repository\Values\Content\VersionInfo;
15
use eZ\Publish\API\Repository\Values\User\User;
16
use eZ\Publish\SPI\Repository\Event\BeforeEvent;
17
use UnexpectedValueException;
18
19
final class BeforeCreateContentDraftEvent extends BeforeEvent
20
{
21
    /** @var \eZ\Publish\API\Repository\Values\Content\ContentInfo */
22
    private $contentInfo;
23
24
    /** @var \eZ\Publish\API\Repository\Values\Content\VersionInfo */
25
    private $versionInfo;
26
27
    /** @var \eZ\Publish\API\Repository\Values\User\User */
28
    private $creator;
29
30
    /** @var \eZ\Publish\API\Repository\Values\Content\Language|null */
31
    private $language;
32
33
    /** @var \eZ\Publish\API\Repository\Values\Content\Content|null */
34
    private $contentDraft;
35
36
    public function __construct(
37
        ContentInfo $contentInfo,
38
        ?VersionInfo $versionInfo = null,
39
        ?User $creator = null,
40
        ?Language $language = null
41
    ) {
42
        $this->contentInfo = $contentInfo;
43
        $this->versionInfo = $versionInfo;
44
        $this->creator = $creator;
45
        $this->language = $language;
46
    }
47
48
    public function getContentInfo(): ContentInfo
49
    {
50
        return $this->contentInfo;
51
    }
52
53
    public function getVersionInfo(): ?VersionInfo
54
    {
55
        return $this->versionInfo;
56
    }
57
58
    public function getCreator(): ?User
59
    {
60
        return $this->creator;
61
    }
62
63
    public function getLanguage(): ?Language
64
    {
65
        return $this->language;
66
    }
67
68
    public function getContentDraft(): Content
69
    {
70
        if (!$this->hasContentDraft()) {
71
            throw new UnexpectedValueException(sprintf('Return value is not set or not a type of %s. Check hasContentDraft() or set it by setContentDraft() before you call getter.', Content::class));
72
        }
73
74
        return $this->contentDraft;
75
    }
76
77
    public function setContentDraft(?Content $contentDraft): void
78
    {
79
        $this->contentDraft = $contentDraft;
80
    }
81
82
    public function hasContentDraft(): bool
83
    {
84
        return $this->contentDraft instanceof Content;
85
    }
86
}
87