blob: 1b2d29cba2b36094c9ac096ae1acd965162444ad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
<?php
declare( strict_types = 1 );
namespace MediaWiki\Extension\Translate\Synchronization;
use JsonSerializable;
use MediaWiki\Extension\Translate\Utilities\Json\JsonUnserializable;
use MediaWiki\Extension\Translate\Utilities\Json\JsonUnserializableTrait;
/**
* Class encapsulating the response returned by the GroupSynchronizationCache
* when requested for an update on a group synchronization status.
* @author Abijeet Patro
* @license GPL-2.0-or-later
* @since 2020.06
*/
class GroupSynchronizationResponse implements JsonSerializable, JsonUnserializable {
use JsonUnserializableTrait;
/** @var MessageUpdateParameter[] */
private $remainingMessages;
/** @var string */
private $groupId;
/** @var bool */
private $timeout;
public function __construct(
string $groupId, array $remainingMessages, bool $hasTimedOut
) {
$this->groupId = $groupId;
$this->remainingMessages = $remainingMessages;
$this->timeout = $hasTimedOut;
}
public function isDone(): bool {
return $this->remainingMessages === [];
}
/** @return MessageUpdateParameter[] */
public function getRemainingMessages(): array {
return $this->remainingMessages;
}
public function getGroupId(): string {
return $this->groupId;
}
public function hasTimedOut(): bool {
return $this->timeout;
}
/** @return mixed[] */
protected function toJsonArray(): array {
return get_object_vars( $this );
}
public static function newFromJsonArray( array $params ) {
return new self(
$params['groupId'],
$params['remainingMessages'],
$params['timeout']
);
}
}
|