Completed
Push — 2.0 ( 359ae1...221cc7 )
by Rafał
51:27 queued 18:07
created

Package::setFeatureMedia()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
/*
4
 * This file is part of the Superdesk Web Publisher Bridge Component.
5
 *
6
 * Copyright 2016 Sourcefabric z.ú. and contributors.
7
 *
8
 * For the full copyright and license information, please see the
9
 * AUTHORS and LICENSE files distributed with this source code.
10
 *
11
 * @copyright 2016 Sourcefabric z.ú
12
 * @license http://www.superdesk.org/license
13
 */
14
15
namespace SWP\Component\Bridge\Model;
16
17
use Doctrine\Common\Collections\ArrayCollection;
18
use Doctrine\Common\Collections\Collection;
19
use SWP\Component\Bridge\Model\Item as BridgeItem;
20
use SWP\Component\Common\Model\EnableableTrait;
21
use SWP\Component\Common\Model\SoftDeletableTrait;
22
use SWP\Component\Common\Model\TimestampableTrait;
23
24
class Package extends BaseContent implements PackageInterface
25
{
26
    use TimestampableTrait;
27
    use SoftDeletableTrait;
28
    use EnableableTrait;
29
30
    /**
31
     * @var Collection
32
     */
33
    protected $items;
34
35
    /**
36
     * @var string
37
     */
38
    protected $body;
39
40
    /**
41
     * @var Collection
42
     */
43
    protected $externalData;
44
45
    /**
46
     * @var Collection
47
     */
48
    protected $groups;
49
50
    /**
51
     * @var ItemInterface[]|Collection
52
     */
53
    protected $relatedItems;
54
55
    protected $featureMedia;
56
57
    public function __construct()
58
    {
59
        parent::__construct();
60
61
        $this->items = new ArrayCollection();
62
        $this->groups = new ArrayCollection();
63
        $this->externalData = new ArrayCollection();
64
        $this->relatedItems = new ArrayCollection();
65
    }
66
67
    public function getItemsArray(): array
68
    {
69
        return $this->items->toArray();
70
    }
71
72
    public function getGroupsArray(): array
73
    {
74
        return $this->groups->toArray();
75
    }
76
77
    public function getItems(): Collection
78
    {
79
        return $this->items;
80
    }
81
82
    public function setItems(Collection $items)
83
    {
84
        $this->items = $items;
85
    }
86
87
    public function addItem(BridgeItem $item)
88
    {
89
        if (!$this->items->contains($item)) {
90
            $this->items->add($item);
91
            $item->setPackage($this);
92
        }
93
94
        return $this;
95
    }
96
97
    public function removeItem(BridgeItem $item)
98
    {
99
        if ($this->items->contains($item)) {
100
            $this->items->removeElement($item);
101
            $item->setPackage(null);
102
        }
103
    }
104
105
    public function getBody()
106
    {
107
        return $this->body;
108
    }
109
110
    public function setBody($body)
111
    {
112
        $this->body = $body;
113
    }
114
115
    public function getExternalData(): ?Collection
116
    {
117
        return $this->externalData;
118
    }
119
120
    public function setExternalData(Collection $externalData): void
121
    {
122
        $this->externalData = $externalData;
123
    }
124
125
    public function getGroups(): ?Collection
126
    {
127
        return $this->groups;
128
    }
129
130
    public function setGroups(?Collection $groups): void
131
    {
132
        $this->groups = $groups;
133
    }
134
135
    public function getRelatedItems(): Collection
136
    {
137
        return $this->relatedItems;
138
    }
139
140
    public function setRelatedItems(Collection $relatedItems): void
141
    {
142
        $this->relatedItems = $relatedItems;
143
    }
144
145
    public function getFeatureMedia(): ?ItemInterface
146
    {
147
        return $this->featureMedia;
148
    }
149
150
    public function setFeatureMedia(ItemInterface $featureMedia): void
151
    {
152
        $this->featureMedia = $featureMedia;
153
    }
154
}
155