ContextActivities   A
last analyzed

Complexity

Total Complexity 17

Size/Duplication

Total Lines 137
Duplicated Lines 0 %

Coupling/Cohesion

Components 4
Dependencies 0

Importance

Changes 0
Metric Value
wmc 17
lcom 4
cbo 0
dl 0
loc 137
rs 10
c 0
b 0
f 0

13 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 1
A withAddedParentActivity() 0 12 2
A withoutParentActivities() 0 7 1
A withAddedGroupingActivity() 0 12 2
A withoutGroupingActivities() 0 7 1
A withAddedCategoryActivity() 0 12 2
A withoutCategoryActivities() 0 7 1
A withAddedOtherActivity() 0 12 2
A withoutOtherActivities() 0 7 1
A getParentActivities() 0 4 1
A getGroupingActivities() 0 4 1
A getCategoryActivities() 0 4 1
A getOtherActivities() 0 4 1
1
<?php
2
3
/*
4
 * This file is part of the xAPI package.
5
 *
6
 * (c) Christian Flothmann <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Xabbuh\XApi\Model;
13
14
/**
15
 * xAPI context activities.
16
 *
17
 * @author Christian Flothmann <[email protected]>
18
 */
19
final class ContextActivities
20
{
21
    private $parentActivities;
22
    private $groupingActivities;
23
    private $categoryActivities;
24
    private $otherActivities;
25
26
    /**
27
     * @param Activity[]|null $parentActivities
28
     * @param Activity[]|null $groupingActivities
29
     * @param Activity[]|null $categoryActivities
30
     * @param Activity[]|null $otherActivities
31
     */
32
    public function __construct(array $parentActivities = null, array $groupingActivities = null, array $categoryActivities = null, array $otherActivities = null)
33
    {
34
        $this->parentActivities = $parentActivities;
35
        $this->groupingActivities = $groupingActivities;
36
        $this->categoryActivities = $categoryActivities;
37
        $this->otherActivities = $otherActivities;
38
    }
39
40
    public function withAddedParentActivity(Activity $parentActivity): self
41
    {
42
        $contextActivities = clone $this;
43
44
        if (!is_array($contextActivities->parentActivities)) {
45
            $contextActivities->parentActivities = array();
46
        }
47
48
        $contextActivities->parentActivities[] = $parentActivity;
49
50
        return $contextActivities;
51
    }
52
53
    public function withoutParentActivities(): self
54
    {
55
        $contextActivities = clone $this;
56
        $contextActivities->parentActivities = null;
57
58
        return $contextActivities;
59
    }
60
61
    public function withAddedGroupingActivity(Activity $groupingActivity): self
62
    {
63
        $contextActivities = clone $this;
64
65
        if (!is_array($contextActivities->groupingActivities)) {
66
            $contextActivities->groupingActivities = array();
67
        }
68
69
        $contextActivities->groupingActivities[] = $groupingActivity;
70
71
        return $contextActivities;
72
    }
73
74
    public function withoutGroupingActivities(): self
75
    {
76
        $contextActivities = clone $this;
77
        $contextActivities->groupingActivities = null;
78
79
        return $contextActivities;
80
    }
81
82
    public function withAddedCategoryActivity(Activity $categoryActivity): self
83
    {
84
        $contextActivities = clone $this;
85
86
        if (!is_array($contextActivities->categoryActivities)) {
87
            $contextActivities->categoryActivities = array();
88
        }
89
90
        $contextActivities->categoryActivities[] = $categoryActivity;
91
92
        return $contextActivities;
93
    }
94
95
    public function withoutCategoryActivities(): self
96
    {
97
        $contextActivities = clone $this;
98
        $contextActivities->categoryActivities = null;
99
100
        return $contextActivities;
101
    }
102
103
    public function withAddedOtherActivity(Activity $otherActivity): self
104
    {
105
        $contextActivities = clone $this;
106
107
        if (!is_array($contextActivities->otherActivities)) {
108
            $contextActivities->otherActivities = array();
109
        }
110
111
        $contextActivities->otherActivities[] = $otherActivity;
112
113
        return $contextActivities;
114
    }
115
116
    public function withoutOtherActivities(): self
117
    {
118
        $contextActivities = clone $this;
119
        $contextActivities->otherActivities = null;
120
121
        return $contextActivities;
122
    }
123
124
    /**
125
     * @return Activity[]|null
126
     */
127
    public function getParentActivities(): ?array
128
    {
129
        return $this->parentActivities;
130
    }
131
132
    /**
133
     * @return Activity[]|null
134
     */
135
    public function getGroupingActivities(): ?array
136
    {
137
        return $this->groupingActivities;
138
    }
139
140
    /**
141
     * @return Activity[]|null
142
     */
143
    public function getCategoryActivities(): ?array
144
    {
145
        return $this->categoryActivities;
146
    }
147
148
    /**
149
     * @return Activity[]|null
150
     */
151
    public function getOtherActivities(): ?array
152
    {
153
        return $this->otherActivities;
154
    }
155
}
156