Completed
Push — master ( 69947f...ffb107 )
by Maxence
01:51
created

Index::getMessage()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 3
rs 10
c 1
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
/**
3
 * FullTextSearch - Full text search framework for Nextcloud
4
 *
5
 * This file is licensed under the Affero General Public License version 3 or
6
 * later. See the COPYING file.
7
 *
8
 * @author Maxence Lange <[email protected]>
9
 * @copyright 2018
10
 * @license GNU AGPL version 3 or any later version
11
 *
12
 * This program is free software: you can redistribute it and/or modify
13
 * it under the terms of the GNU Affero General Public License as
14
 * published by the Free Software Foundation, either version 3 of the
15
 * License, or (at your option) any later version.
16
 *
17
 * This program is distributed in the hope that it will be useful,
18
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
 * GNU Affero General Public License for more details.
21
 *
22
 * You should have received a copy of the GNU Affero General Public License
23
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
24
 *
25
 */
26
27
namespace OCA\FullTextSearch\Model;
28
29
class Index implements \JsonSerializable {
30
31
	const INDEX_OK = 1;
32
	const INDEX_IGNORE = 2;
33
34
	const INDEX_META = 4;
35
	const INDEX_CONTENT = 8;
36
	const INDEX_FULL = 12;
37
	const INDEX_REMOVE = 16;
38
39
	const INDEX_DONE = 32;
40
	const INDEX_FAILED = 64;
41
42
	const ERROR_FAILED = 1;
43
	const ERROR_FAILED2 = 2;
44
	const ERROR_FAILED3 = 4;
45
46
47
	/** @var string */
48
	private $providerId;
49
50
	/** @var string */
51
	private $documentId;
52
53
	/** @var string */
54
	private $ownerId = '';
55
56
	/** @var int */
57
	private $status = 0;
58
59
	/** @var int */
60
	private $err = 0;
61
62
	/** @var string */
63
	private $message;
64
65
	/** @var int */
66
	private $lastIndex = 0;
67
68
69
	public function __construct($providerId, $documentId) {
70
		$this->providerId = $providerId;
71
		$this->documentId = $documentId;
72
	}
73
74
75
	/**
76
	 * @return string
77
	 */
78
	public function getProviderId() {
79
		return $this->providerId;
80
	}
81
82
	/**
83
	 * @return string
84
	 */
85
	public function getDocumentId() {
86
		return $this->documentId;
87
	}
88
89
90
	/**
91
	 * @param string $ownerId
92
	 *
93
	 * @return $this
94
	 */
95
	public function setOwnerId($ownerId) {
96
		$this->ownerId = $ownerId;
97
98
		return $this;
99
	}
100
101
	/**
102
	 * @return string
103
	 */
104
	public function getOwnerId() {
105
		return $this->ownerId;
106
	}
107
108
109
	/**
110
	 * @param int $status
111
	 * @param bool $reset
112
	 *
113
	 * @return $this
114
	 */
115
	public function setStatus($status, $reset = false) {
116
		if ($reset === true) {
117
			$this->status = $status;
118
		} else if (!$this->isStatus($status)) {
119
			$this->status += $status;
120
		}
121
122
		return $this;
123
	}
124
125
	/**
126
	 * @return int
127
	 */
128
	public function getStatus() {
129
		return $this->status;
130
	}
131
132
	/**
133
	 * @param int $status
134
	 *
135
	 * @return bool
0 ignored issues
show
Documentation introduced by
Should the return type not be integer?

This check compares the return type specified in the @return annotation of a function or method doc comment with the types returned by the function and raises an issue if they mismatch.

Loading history...
136
	 */
137
	public function isStatus($status) {
138
		return ((int)$status & $this->getStatus());
139
	}
140
141
	/**
142
	 * @param int $status
143
	 */
144
	public function unsetStatus($status) {
145
		if (!$this->isStatus($status)) {
146
			return;
147
		}
148
149
		$this->status -= $status;
150
	}
151
152
153
	/**
154
	 * @param int $err
155
	 *
156
	 * @return $this
157
	 */
158
	public function setError($err) {
159
		$this->err = $err;
160
161
		return $this;
162
	}
163
164
	/**
165
	 * @return int
166
	 */
167
	public function getError() {
168
		return $this->err;
169
	}
170
171
	/**
172
	 * @return $this
173
	 */
174
	public function incrementError() {
175
		$this->err++;
176
177
		return $this;
178
	}
179
180
181
	/**
182
	 * @return string
183
	 */
184
	public function getMessage() {
185
		return $this->message;
186
	}
187
188
	/**
189
	 * @param string $message
190
	 *
191
	 * @return Index
192
	 */
193
	public function setMessage($message) {
194
		$this->message = $message;
195
196
		return $this;
197
	}
198
199
200
	/**
201
	 * @param int $lastIndex
202
	 *
203
	 * @return $this
204
	 */
205
	public function setLastIndex($lastIndex = -1) {
206
		if ($lastIndex === -1) {
207
			$lastIndex = time();
208
		}
209
210
		$this->lastIndex = $lastIndex;
211
212
		return $this;
213
	}
214
215
	/**
216
	 * @return int
217
	 */
218
	public function getLastIndex() {
219
		return $this->lastIndex;
220
	}
221
222
223
	/**
224
	 * @return array<string,string|integer>
225
	 */
226
	public function jsonSerialize() {
227
		return [
228
			'ownerId'    => $this->getOwnerId(),
229
			'providerId' => $this->getProviderId(),
230
			'documentId' => $this->getDocumentId(),
231
			'lastIndex'  => $this->getLastIndex(),
232
			'status'     => (int)$this->getStatus()
233
		];
234
	}
235
236
}