Passed
Push — master ( 0e0623...1e8f06 )
by Roeland
09:01 queued 11s
created
lib/private/Activity/EventMerger.php 1 patch
Indentation   +202 added lines, -202 removed lines patch added patch discarded remove patch
@@ -29,231 +29,231 @@
 block discarded – undo
29 29
 
30 30
 class EventMerger implements IEventMerger {
31 31
 
32
-	/** @var IL10N */
33
-	protected $l10n;
32
+    /** @var IL10N */
33
+    protected $l10n;
34 34
 
35
-	/**
36
-	 * @param IL10N $l10n
37
-	 */
38
-	public function __construct(IL10N $l10n) {
39
-		$this->l10n = $l10n;
40
-	}
35
+    /**
36
+     * @param IL10N $l10n
37
+     */
38
+    public function __construct(IL10N $l10n) {
39
+        $this->l10n = $l10n;
40
+    }
41 41
 
42
-	/**
43
-	 * Combines two events when possible to have grouping:
44
-	 *
45
-	 * Example1: Two events with subject '{user} created {file}' and
46
-	 * $mergeParameter file with different file and same user will be merged
47
-	 * to '{user} created {file1} and {file2}' and the childEvent on the return
48
-	 * will be set, if the events have been merged.
49
-	 *
50
-	 * Example2: Two events with subject '{user} created {file}' and
51
-	 * $mergeParameter file with same file and same user will be merged to
52
-	 * '{user} created {file1}' and the childEvent on the return will be set, if
53
-	 * the events have been merged.
54
-	 *
55
-	 * The following requirements have to be met, in order to be merged:
56
-	 * - Both events need to have the same `getApp()`
57
-	 * - Both events must not have a message `getMessage()`
58
-	 * - Both events need to have the same subject `getSubject()`
59
-	 * - Both events need to have the same object type `getObjectType()`
60
-	 * - The time difference between both events must not be bigger then 3 hours
61
-	 * - Only up to 5 events can be merged.
62
-	 * - All parameters apart from such starting with $mergeParameter must be
63
-	 *   the same for both events.
64
-	 *
65
-	 * @param string $mergeParameter
66
-	 * @param IEvent $event
67
-	 * @param IEvent|null $previousEvent
68
-	 * @return IEvent
69
-	 */
70
-	public function mergeEvents($mergeParameter, IEvent $event, IEvent $previousEvent = null) {
71
-		// No second event => can not combine
72
-		if (!$previousEvent instanceof IEvent) {
73
-			return $event;
74
-		}
42
+    /**
43
+     * Combines two events when possible to have grouping:
44
+     *
45
+     * Example1: Two events with subject '{user} created {file}' and
46
+     * $mergeParameter file with different file and same user will be merged
47
+     * to '{user} created {file1} and {file2}' and the childEvent on the return
48
+     * will be set, if the events have been merged.
49
+     *
50
+     * Example2: Two events with subject '{user} created {file}' and
51
+     * $mergeParameter file with same file and same user will be merged to
52
+     * '{user} created {file1}' and the childEvent on the return will be set, if
53
+     * the events have been merged.
54
+     *
55
+     * The following requirements have to be met, in order to be merged:
56
+     * - Both events need to have the same `getApp()`
57
+     * - Both events must not have a message `getMessage()`
58
+     * - Both events need to have the same subject `getSubject()`
59
+     * - Both events need to have the same object type `getObjectType()`
60
+     * - The time difference between both events must not be bigger then 3 hours
61
+     * - Only up to 5 events can be merged.
62
+     * - All parameters apart from such starting with $mergeParameter must be
63
+     *   the same for both events.
64
+     *
65
+     * @param string $mergeParameter
66
+     * @param IEvent $event
67
+     * @param IEvent|null $previousEvent
68
+     * @return IEvent
69
+     */
70
+    public function mergeEvents($mergeParameter, IEvent $event, IEvent $previousEvent = null) {
71
+        // No second event => can not combine
72
+        if (!$previousEvent instanceof IEvent) {
73
+            return $event;
74
+        }
75 75
 
76
-		// Different app => can not combine
77
-		if ($event->getApp() !== $previousEvent->getApp()) {
78
-			return $event;
79
-		}
76
+        // Different app => can not combine
77
+        if ($event->getApp() !== $previousEvent->getApp()) {
78
+            return $event;
79
+        }
80 80
 
81
-		// Message is set => can not combine
82
-		if ($event->getMessage() !== '' || $previousEvent->getMessage() !== '') {
83
-			return $event;
84
-		}
81
+        // Message is set => can not combine
82
+        if ($event->getMessage() !== '' || $previousEvent->getMessage() !== '') {
83
+            return $event;
84
+        }
85 85
 
86
-		// Different subject => can not combine
87
-		if ($event->getSubject() !== $previousEvent->getSubject()) {
88
-			return $event;
89
-		}
86
+        // Different subject => can not combine
87
+        if ($event->getSubject() !== $previousEvent->getSubject()) {
88
+            return $event;
89
+        }
90 90
 
91
-		// Different object type => can not combine
92
-		if ($event->getObjectType() !== $previousEvent->getObjectType()) {
93
-			return $event;
94
-		}
91
+        // Different object type => can not combine
92
+        if ($event->getObjectType() !== $previousEvent->getObjectType()) {
93
+            return $event;
94
+        }
95 95
 
96
-		// More than 3 hours difference => can not combine
97
-		if (abs($event->getTimestamp() - $previousEvent->getTimestamp()) > 3 * 60 * 60) {
98
-			return $event;
99
-		}
96
+        // More than 3 hours difference => can not combine
97
+        if (abs($event->getTimestamp() - $previousEvent->getTimestamp()) > 3 * 60 * 60) {
98
+            return $event;
99
+        }
100 100
 
101
-		// Other parameters are not the same => can not combine
102
-		try {
103
-			list($combined, $parameters) = $this->combineParameters($mergeParameter, $event, $previousEvent);
104
-		} catch (\UnexpectedValueException $e) {
105
-			return $event;
106
-		}
101
+        // Other parameters are not the same => can not combine
102
+        try {
103
+            list($combined, $parameters) = $this->combineParameters($mergeParameter, $event, $previousEvent);
104
+        } catch (\UnexpectedValueException $e) {
105
+            return $event;
106
+        }
107 107
 
108
-		try {
109
-			$newSubject = $this->getExtendedSubject($event->getRichSubject(), $mergeParameter, $combined);
110
-			$parsedSubject = $this->generateParsedSubject($newSubject, $parameters);
108
+        try {
109
+            $newSubject = $this->getExtendedSubject($event->getRichSubject(), $mergeParameter, $combined);
110
+            $parsedSubject = $this->generateParsedSubject($newSubject, $parameters);
111 111
 
112
-			$event->setRichSubject($newSubject, $parameters)
113
-				->setParsedSubject($parsedSubject)
114
-				->setChildEvent($previousEvent)
115
-				->setTimestamp(max($event->getTimestamp(), $previousEvent->getTimestamp()));
116
-		} catch (\UnexpectedValueException $e) {
117
-			return $event;
118
-		}
112
+            $event->setRichSubject($newSubject, $parameters)
113
+                ->setParsedSubject($parsedSubject)
114
+                ->setChildEvent($previousEvent)
115
+                ->setTimestamp(max($event->getTimestamp(), $previousEvent->getTimestamp()));
116
+        } catch (\UnexpectedValueException $e) {
117
+            return $event;
118
+        }
119 119
 
120
-		return $event;
121
-	}
120
+        return $event;
121
+    }
122 122
 
123
-	/**
124
-	 * @param string $mergeParameter
125
-	 * @param IEvent $event
126
-	 * @param IEvent $previousEvent
127
-	 * @return array
128
-	 * @throws \UnexpectedValueException
129
-	 */
130
-	protected function combineParameters($mergeParameter, IEvent $event, IEvent $previousEvent) {
131
-		$params1 = $event->getRichSubjectParameters();
132
-		$params2 = $previousEvent->getRichSubjectParameters();
133
-		$params = [];
123
+    /**
124
+     * @param string $mergeParameter
125
+     * @param IEvent $event
126
+     * @param IEvent $previousEvent
127
+     * @return array
128
+     * @throws \UnexpectedValueException
129
+     */
130
+    protected function combineParameters($mergeParameter, IEvent $event, IEvent $previousEvent) {
131
+        $params1 = $event->getRichSubjectParameters();
132
+        $params2 = $previousEvent->getRichSubjectParameters();
133
+        $params = [];
134 134
 
135
-		$combined = 0;
135
+        $combined = 0;
136 136
 
137
-		// Check that all parameters from $event exist in $previousEvent
138
-		foreach ($params1 as $key => $parameter) {
139
-			if (preg_match('/^' . $mergeParameter . '(\d+)?$/', $key)) {
140
-				if (!$this->checkParameterAlreadyExits($params, $mergeParameter, $parameter)) {
141
-					$combined++;
142
-					$params[$mergeParameter . $combined] = $parameter;
143
-				}
144
-				continue;
145
-			}
137
+        // Check that all parameters from $event exist in $previousEvent
138
+        foreach ($params1 as $key => $parameter) {
139
+            if (preg_match('/^' . $mergeParameter . '(\d+)?$/', $key)) {
140
+                if (!$this->checkParameterAlreadyExits($params, $mergeParameter, $parameter)) {
141
+                    $combined++;
142
+                    $params[$mergeParameter . $combined] = $parameter;
143
+                }
144
+                continue;
145
+            }
146 146
 
147
-			if (!isset($params2[$key]) || $params2[$key] !== $parameter) {
148
-				// Parameter missing on $previousEvent or different => can not combine
149
-				throw new \UnexpectedValueException();
150
-			}
147
+            if (!isset($params2[$key]) || $params2[$key] !== $parameter) {
148
+                // Parameter missing on $previousEvent or different => can not combine
149
+                throw new \UnexpectedValueException();
150
+            }
151 151
 
152
-			$params[$key] = $parameter;
153
-		}
152
+            $params[$key] = $parameter;
153
+        }
154 154
 
155
-		// Check that all parameters from $previousEvent exist in $event
156
-		foreach ($params2 as $key => $parameter) {
157
-			if (preg_match('/^' . $mergeParameter . '(\d+)?$/', $key)) {
158
-				if (!$this->checkParameterAlreadyExits($params, $mergeParameter, $parameter)) {
159
-					$combined++;
160
-					$params[$mergeParameter . $combined] = $parameter;
161
-				}
162
-				continue;
163
-			}
155
+        // Check that all parameters from $previousEvent exist in $event
156
+        foreach ($params2 as $key => $parameter) {
157
+            if (preg_match('/^' . $mergeParameter . '(\d+)?$/', $key)) {
158
+                if (!$this->checkParameterAlreadyExits($params, $mergeParameter, $parameter)) {
159
+                    $combined++;
160
+                    $params[$mergeParameter . $combined] = $parameter;
161
+                }
162
+                continue;
163
+            }
164 164
 
165
-			if (!isset($params1[$key]) || $params1[$key] !== $parameter) {
166
-				// Parameter missing on $event or different => can not combine
167
-				throw new \UnexpectedValueException();
168
-			}
165
+            if (!isset($params1[$key]) || $params1[$key] !== $parameter) {
166
+                // Parameter missing on $event or different => can not combine
167
+                throw new \UnexpectedValueException();
168
+            }
169 169
 
170
-			$params[$key] = $parameter;
171
-		}
170
+            $params[$key] = $parameter;
171
+        }
172 172
 
173
-		return [$combined, $params];
174
-	}
173
+        return [$combined, $params];
174
+    }
175 175
 
176
-	/**
177
-	 * @param array[] $parameters
178
-	 * @param string $mergeParameter
179
-	 * @param array $parameter
180
-	 * @return bool
181
-	 */
182
-	protected function checkParameterAlreadyExits($parameters, $mergeParameter, $parameter) {
183
-		foreach ($parameters as $key => $param) {
184
-			if (preg_match('/^' . $mergeParameter . '(\d+)?$/', $key)) {
185
-				if ($param === $parameter) {
186
-					return true;
187
-				}
188
-			}
189
-		}
190
-		return false;
191
-	}
176
+    /**
177
+     * @param array[] $parameters
178
+     * @param string $mergeParameter
179
+     * @param array $parameter
180
+     * @return bool
181
+     */
182
+    protected function checkParameterAlreadyExits($parameters, $mergeParameter, $parameter) {
183
+        foreach ($parameters as $key => $param) {
184
+            if (preg_match('/^' . $mergeParameter . '(\d+)?$/', $key)) {
185
+                if ($param === $parameter) {
186
+                    return true;
187
+                }
188
+            }
189
+        }
190
+        return false;
191
+    }
192 192
 
193
-	/**
194
-	 * @param string $subject
195
-	 * @param string $parameter
196
-	 * @param int $counter
197
-	 * @return mixed
198
-	 */
199
-	protected function getExtendedSubject($subject, $parameter, $counter) {
200
-		switch ($counter) {
201
-			case 1:
202
-				$replacement = '{' . $parameter . '1}';
203
-				break;
204
-			case 2:
205
-				$replacement = $this->l10n->t(
206
-					'%1$s and %2$s',
207
-					['{' . $parameter . '2}', '{' . $parameter . '1}']
208
-				);
209
-				break;
210
-			case 3:
211
-				$replacement = $this->l10n->t(
212
-					'%1$s, %2$s and %3$s',
213
-					['{' . $parameter . '3}', '{' . $parameter . '2}', '{' . $parameter . '1}']
214
-				);
215
-				break;
216
-			case 4:
217
-				$replacement = $this->l10n->t(
218
-					'%1$s, %2$s, %3$s and %4$s',
219
-					['{' . $parameter . '4}', '{' . $parameter . '3}', '{' . $parameter . '2}', '{' . $parameter . '1}']
220
-				);
221
-				break;
222
-			case 5:
223
-				$replacement = $this->l10n->t(
224
-					'%1$s, %2$s, %3$s, %4$s and %5$s',
225
-					['{' . $parameter . '5}', '{' . $parameter . '4}', '{' . $parameter . '3}', '{' . $parameter . '2}', '{' . $parameter . '1}']
226
-				);
227
-				break;
228
-			default:
229
-				throw new \UnexpectedValueException();
230
-		}
193
+    /**
194
+     * @param string $subject
195
+     * @param string $parameter
196
+     * @param int $counter
197
+     * @return mixed
198
+     */
199
+    protected function getExtendedSubject($subject, $parameter, $counter) {
200
+        switch ($counter) {
201
+            case 1:
202
+                $replacement = '{' . $parameter . '1}';
203
+                break;
204
+            case 2:
205
+                $replacement = $this->l10n->t(
206
+                    '%1$s and %2$s',
207
+                    ['{' . $parameter . '2}', '{' . $parameter . '1}']
208
+                );
209
+                break;
210
+            case 3:
211
+                $replacement = $this->l10n->t(
212
+                    '%1$s, %2$s and %3$s',
213
+                    ['{' . $parameter . '3}', '{' . $parameter . '2}', '{' . $parameter . '1}']
214
+                );
215
+                break;
216
+            case 4:
217
+                $replacement = $this->l10n->t(
218
+                    '%1$s, %2$s, %3$s and %4$s',
219
+                    ['{' . $parameter . '4}', '{' . $parameter . '3}', '{' . $parameter . '2}', '{' . $parameter . '1}']
220
+                );
221
+                break;
222
+            case 5:
223
+                $replacement = $this->l10n->t(
224
+                    '%1$s, %2$s, %3$s, %4$s and %5$s',
225
+                    ['{' . $parameter . '5}', '{' . $parameter . '4}', '{' . $parameter . '3}', '{' . $parameter . '2}', '{' . $parameter . '1}']
226
+                );
227
+                break;
228
+            default:
229
+                throw new \UnexpectedValueException();
230
+        }
231 231
 
232
-		return str_replace(
233
-			'{' . $parameter . '}',
234
-			$replacement,
235
-			$subject
236
-		);
237
-	}
232
+        return str_replace(
233
+            '{' . $parameter . '}',
234
+            $replacement,
235
+            $subject
236
+        );
237
+    }
238 238
 
239
-	/**
240
-	 * @param string $subject
241
-	 * @param array[] $parameters
242
-	 * @return string
243
-	 */
244
-	protected function generateParsedSubject($subject, $parameters) {
245
-		$placeholders = $replacements = [];
246
-		foreach ($parameters as $placeholder => $parameter) {
247
-			$placeholders[] = '{' . $placeholder . '}';
248
-			if ($parameter['type'] === 'file') {
249
-				$replacements[] = trim($parameter['path'], '/');
250
-			} else if (isset($parameter['name'])) {
251
-				$replacements[] = $parameter['name'];
252
-			} else {
253
-				$replacements[] = $parameter['id'];
254
-			}
255
-		}
239
+    /**
240
+     * @param string $subject
241
+     * @param array[] $parameters
242
+     * @return string
243
+     */
244
+    protected function generateParsedSubject($subject, $parameters) {
245
+        $placeholders = $replacements = [];
246
+        foreach ($parameters as $placeholder => $parameter) {
247
+            $placeholders[] = '{' . $placeholder . '}';
248
+            if ($parameter['type'] === 'file') {
249
+                $replacements[] = trim($parameter['path'], '/');
250
+            } else if (isset($parameter['name'])) {
251
+                $replacements[] = $parameter['name'];
252
+            } else {
253
+                $replacements[] = $parameter['id'];
254
+            }
255
+        }
256 256
 
257
-		return str_replace($placeholders, $replacements, $subject);
258
-	}
257
+        return str_replace($placeholders, $replacements, $subject);
258
+    }
259 259
 }
Please login to merge, or discard this patch.