Completed
Pull Request — master (#18)
by Christian
07:07 queued 04:45
created

ContextActivities::getParentActivities()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
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
    public function __construct(array $parentActivities = null, array $groupingActivities = null, array $categoryActivities = null, array $otherActivities = null)
27
    {
28
        $this->parentActivities = $parentActivities;
29
        $this->groupingActivities = $groupingActivities;
30
        $this->categoryActivities = $categoryActivities;
31
        $this->otherActivities = $otherActivities;
32
    }
33
34
    public function withAddedParentActivity(Activity $parentActivity)
35
    {
36
        $contextActivities = clone $this;
37
38
        if (!is_array($contextActivities->parentActivities)) {
39
            $contextActivities->parentActivities = array();
40
        }
41
42
        $contextActivities->parentActivities[] = $parentActivity;
43
44
        return $contextActivities;
45
    }
46
47
    public function withoutParentActivities()
48
    {
49
        $contextActivities = clone $this;
50
        $contextActivities->parentActivities = null;
51
52
        return $contextActivities;
53
    }
54
55
    public function withAddedGroupingActivity(Activity $groupingActivity)
56
    {
57
        $contextActivities = clone $this;
58
59
        if (!is_array($contextActivities->groupingActivities)) {
60
            $contextActivities->groupingActivities = array();
61
        }
62
63
        $contextActivities->groupingActivities[] = $groupingActivity;
64
65
        return $contextActivities;
66
    }
67
68
    public function withoutGroupingActivities()
69
    {
70
        $contextActivities = clone $this;
71
        $contextActivities->groupingActivities = null;
72
73
        return $contextActivities;
74
    }
75
76
    public function withAddedCategoryActivity(Activity $categoryActivity)
77
    {
78
        $contextActivities = clone $this;
79
80
        if (!is_array($contextActivities->categoryActivities)) {
81
            $contextActivities->categoryActivities = array();
82
        }
83
84
        $contextActivities->categoryActivities[] = $categoryActivity;
85
86
        return $contextActivities;
87
    }
88
89
    public function withoutCategoryActivities()
90
    {
91
        $contextActivities = clone $this;
92
        $contextActivities->categoryActivities = null;
93
94
        return $contextActivities;
95
    }
96
97
    public function withAddedOtherActivity(Activity $otherActivity)
98
    {
99
        $contextActivities = clone $this;
100
101
        if (!is_array($contextActivities->otherActivities)) {
102
            $contextActivities->otherActivities = array();
103
        }
104
105
        $contextActivities->otherActivities[] = $otherActivity;
106
107
        return $contextActivities;
108
    }
109
110
    public function withoutOtherActivities()
111
    {
112
        $contextActivities = clone $this;
113
        $contextActivities->otherActivities = null;
114
115
        return $contextActivities;
116
    }
117
118
    public function getParentActivities()
119
    {
120
        return $this->parentActivities;
121
    }
122
123
    public function getGroupingActivities()
124
    {
125
        return $this->groupingActivities;
126
    }
127
128
    public function getCategoryActivities()
129
    {
130
        return $this->categoryActivities;
131
    }
132
133
    public function getOtherActivities()
134
    {
135
        return $this->otherActivities;
136
    }
137
}
138