Completed
Push — master ( 4778c3...8d43a5 )
by
unknown
37s queued 13s
created
src/Specials/SpecialConstraintReport.php 1 patch
Spacing   +82 added lines, -82 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-declare( strict_types = 1 );
3
+declare(strict_types=1);
4 4
 
5 5
 namespace WikibaseQuality\ConstraintReport\Specials;
6 6
 
@@ -90,7 +90,7 @@  discard block
 block discarded – undo
90 90
 		Config $config,
91 91
 		IBufferingStatsdDataFactory $dataFactory
92 92
 	) {
93
-		parent::__construct( 'ConstraintReport' );
93
+		parent::__construct('ConstraintReport');
94 94
 
95 95
 		$this->entityLookup = $entityLookup;
96 96
 		$this->entityTitleLookup = $entityTitleLookup;
@@ -110,7 +110,7 @@  discard block
 block discarded – undo
110 110
 
111 111
 		$this->violationMessageRenderer = $violationMessageRendererFactory->getViolationMessageRenderer(
112 112
 			$language,
113
-			$languageFallbackChainFactory->newFromLanguage( $language ),
113
+			$languageFallbackChainFactory->newFromLanguage($language),
114 114
 			$this->getContext()
115 115
 		);
116 116
 
@@ -144,7 +144,7 @@  discard block
 block discarded – undo
144 144
 	 * @inheritDoc
145 145
 	 */
146 146
 	public function getDescription() {
147
-		return $this->msg( 'wbqc-constraintreport' );
147
+		return $this->msg('wbqc-constraintreport');
148 148
 	}
149 149
 
150 150
 	/**
@@ -156,43 +156,43 @@  discard block
 block discarded – undo
156 156
 	 * @throws EntityIdParsingException
157 157
 	 * @throws UnexpectedValueException
158 158
 	 */
159
-	public function execute( $subPage ) {
159
+	public function execute($subPage) {
160 160
 		$out = $this->getOutput();
161 161
 
162
-		$postRequest = $this->getContext()->getRequest()->getVal( 'entityid' );
163
-		if ( $postRequest ) {
164
-			$out->redirect( $this->getPageTitle( strtoupper( $postRequest ) )->getLocalURL() );
162
+		$postRequest = $this->getContext()->getRequest()->getVal('entityid');
163
+		if ($postRequest) {
164
+			$out->redirect($this->getPageTitle(strtoupper($postRequest))->getLocalURL());
165 165
 			return;
166 166
 		}
167 167
 
168 168
 		$out->enableOOUI();
169
-		$out->addModules( $this->getModules() );
169
+		$out->addModules($this->getModules());
170 170
 
171 171
 		$this->setHeaders();
172 172
 
173
-		$out->addHTML( $this->getExplanationText() );
173
+		$out->addHTML($this->getExplanationText());
174 174
 		$this->buildEntityIdForm();
175 175
 
176
-		if ( !$subPage ) {
176
+		if (!$subPage) {
177 177
 			return;
178 178
 		}
179 179
 
180
-		if ( !is_string( $subPage ) ) {
181
-			throw new InvalidArgumentException( '$subPage must be string.' );
180
+		if (!is_string($subPage)) {
181
+			throw new InvalidArgumentException('$subPage must be string.');
182 182
 		}
183 183
 
184 184
 		try {
185
-			$entityId = $this->entityIdParser->parse( $subPage );
186
-		} catch ( EntityIdParsingException $e ) {
185
+			$entityId = $this->entityIdParser->parse($subPage);
186
+		} catch (EntityIdParsingException $e) {
187 187
 			$out->addHTML(
188
-				$this->buildNotice( 'wbqc-constraintreport-invalid-entity-id', true )
188
+				$this->buildNotice('wbqc-constraintreport-invalid-entity-id', true)
189 189
 			);
190 190
 			return;
191 191
 		}
192 192
 
193
-		if ( !$this->entityLookup->hasEntity( $entityId ) ) {
193
+		if (!$this->entityLookup->hasEntity($entityId)) {
194 194
 			$out->addHTML(
195
-				$this->buildNotice( 'wbqc-constraintreport-not-existent-entity', true )
195
+				$this->buildNotice('wbqc-constraintreport-not-existent-entity', true)
196 196
 			);
197 197
 			return;
198 198
 		}
@@ -200,18 +200,18 @@  discard block
 block discarded – undo
200 200
 		$this->dataFactory->increment(
201 201
 			'wikibase.quality.constraints.specials.specialConstraintReport.executeCheck'
202 202
 		);
203
-		$results = $this->constraintChecker->checkAgainstConstraintsOnEntityId( $entityId );
203
+		$results = $this->constraintChecker->checkAgainstConstraintsOnEntityId($entityId);
204 204
 
205
-		if ( $results !== [] ) {
205
+		if ($results !== []) {
206 206
 			$out->addHTML(
207
-				$this->buildResultHeader( $entityId )
208
-				. $this->buildSummary( $results )
209
-				. $this->buildResultTable( $entityId, $results )
207
+				$this->buildResultHeader($entityId)
208
+				. $this->buildSummary($results)
209
+				. $this->buildResultTable($entityId, $results)
210 210
 			);
211 211
 		} else {
212 212
 			$out->addHTML(
213
-				$this->buildResultHeader( $entityId )
214
-				. $this->buildNotice( 'wbqc-constraintreport-empty-result' )
213
+				$this->buildResultHeader($entityId)
214
+				. $this->buildNotice('wbqc-constraintreport-empty-result')
215 215
 			);
216 216
 		}
217 217
 	}
@@ -227,15 +227,15 @@  discard block
 block discarded – undo
227 227
 				'name' => 'entityid',
228 228
 				'label-message' => 'wbqc-constraintreport-form-entityid-label',
229 229
 				'cssclass' => 'wbqc-constraintreport-form-entity-id',
230
-				'placeholder' => $this->msg( 'wbqc-constraintreport-form-entityid-placeholder' )->escaped(),
230
+				'placeholder' => $this->msg('wbqc-constraintreport-form-entityid-placeholder')->escaped(),
231 231
 			],
232 232
 		];
233
-		$htmlForm = HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext(), 'wbqc-constraintreport-form' );
234
-		$htmlForm->setSubmitText( $this->msg( 'wbqc-constraintreport-form-submit-label' )->escaped() );
235
-		$htmlForm->setSubmitCallback( static function () {
233
+		$htmlForm = HTMLForm::factory('ooui', $formDescriptor, $this->getContext(), 'wbqc-constraintreport-form');
234
+		$htmlForm->setSubmitText($this->msg('wbqc-constraintreport-form-submit-label')->escaped());
235
+		$htmlForm->setSubmitCallback(static function() {
236 236
 			return false;
237 237
 		} );
238
-		$htmlForm->setMethod( 'post' );
238
+		$htmlForm->setMethod('post');
239 239
 		$htmlForm->show();
240 240
 	}
241 241
 
@@ -249,9 +249,9 @@  discard block
 block discarded – undo
249 249
 	 *
250 250
 	 * @return string HTML
251 251
 	 */
252
-	private function buildNotice( string $messageKey, bool $error = false ): string {
252
+	private function buildNotice(string $messageKey, bool $error = false): string {
253 253
 		$cssClasses = 'wbqc-constraintreport-notice';
254
-		if ( $error ) {
254
+		if ($error) {
255 255
 			$cssClasses .= ' wbqc-constraintreport-notice-error';
256 256
 		}
257 257
 
@@ -260,7 +260,7 @@  discard block
 block discarded – undo
260 260
 				[
261 261
 					'class' => $cssClasses,
262 262
 				],
263
-				$this->msg( $messageKey )->escaped()
263
+				$this->msg($messageKey)->escaped()
264 264
 			);
265 265
 	}
266 266
 
@@ -270,16 +270,16 @@  discard block
 block discarded – undo
270 270
 	private function getExplanationText(): string {
271 271
 		return Html::rawElement(
272 272
 			'div',
273
-			[ 'class' => 'wbqc-explanation' ],
273
+			['class' => 'wbqc-explanation'],
274 274
 			Html::rawElement(
275 275
 				'p',
276 276
 				[],
277
-				$this->msg( 'wbqc-constraintreport-explanation-part-one' )->escaped()
277
+				$this->msg('wbqc-constraintreport-explanation-part-one')->escaped()
278 278
 			)
279 279
 			. Html::rawElement(
280 280
 				'p',
281 281
 				[],
282
-				$this->msg( 'wbqc-constraintreport-explanation-part-two' )->escaped()
282
+				$this->msg('wbqc-constraintreport-explanation-part-two')->escaped()
283 283
 			)
284 284
 		);
285 285
 	}
@@ -290,31 +290,31 @@  discard block
 block discarded – undo
290 290
 	 *
291 291
 	 * @return string HTML
292 292
 	 */
293
-	private function buildResultTable( EntityId $entityId, array $results ): string {
293
+	private function buildResultTable(EntityId $entityId, array $results): string {
294 294
 		// Set table headers
295 295
 		$table = new HtmlTableBuilder(
296 296
 			[
297 297
 				new HtmlTableHeaderBuilder(
298
-					$this->msg( 'wbqc-constraintreport-result-table-header-status' )->text(),
298
+					$this->msg('wbqc-constraintreport-result-table-header-status')->text(),
299 299
 					true
300 300
 				),
301 301
 				new HtmlTableHeaderBuilder(
302
-					$this->msg( 'wbqc-constraintreport-result-table-header-property' )->text(),
302
+					$this->msg('wbqc-constraintreport-result-table-header-property')->text(),
303 303
 					true
304 304
 				),
305 305
 				new HtmlTableHeaderBuilder(
306
-					$this->msg( 'wbqc-constraintreport-result-table-header-message' )->text(),
306
+					$this->msg('wbqc-constraintreport-result-table-header-message')->text(),
307 307
 					true
308 308
 				),
309 309
 				new HtmlTableHeaderBuilder(
310
-					$this->msg( 'wbqc-constraintreport-result-table-header-constraint' )->text(),
310
+					$this->msg('wbqc-constraintreport-result-table-header-constraint')->text(),
311 311
 					true
312 312
 				),
313 313
 			]
314 314
 		);
315 315
 
316
-		foreach ( $results as $result ) {
317
-			$table = $this->appendToResultTable( $table, $entityId, $result );
316
+		foreach ($results as $result) {
317
+			$table = $this->appendToResultTable($table, $entityId, $result);
318 318
 		}
319 319
 
320 320
 		return $table->toHtml();
@@ -326,35 +326,35 @@  discard block
 block discarded – undo
326 326
 		CheckResult $result
327 327
 	): HtmlTableBuilder {
328 328
 		$message = $result->getMessage();
329
-		if ( $message === null ) {
329
+		if ($message === null) {
330 330
 			// no row for this result
331 331
 			return $table;
332 332
 		}
333 333
 
334 334
 		// Status column
335
-		$statusColumn = $this->formatStatus( $result->getStatus() );
335
+		$statusColumn = $this->formatStatus($result->getStatus());
336 336
 
337 337
 		// Property column
338
-		$propertyId = new NumericPropertyId( $result->getContextCursor()->getSnakPropertyId() );
338
+		$propertyId = new NumericPropertyId($result->getContextCursor()->getSnakPropertyId());
339 339
 		$propertyColumn = $this->getClaimLink(
340 340
 			$entityId,
341 341
 			$propertyId,
342
-			$this->entityIdLabelFormatter->formatEntityId( $propertyId )
342
+			$this->entityIdLabelFormatter->formatEntityId($propertyId)
343 343
 		);
344 344
 
345 345
 		// Message column
346
-		$messageColumn = $this->violationMessageRenderer->render( $message );
346
+		$messageColumn = $this->violationMessageRenderer->render($message);
347 347
 
348 348
 		// Constraint column
349 349
 		$constraintTypeItemId = $result->getConstraint()->getConstraintTypeItemId();
350 350
 		try {
351
-			$constraintTypeLabel = $this->entityIdLabelFormatter->formatEntityId( new ItemId( $constraintTypeItemId ) );
352
-		} catch ( InvalidArgumentException $e ) {
353
-			$constraintTypeLabel = htmlspecialchars( $constraintTypeItemId );
351
+			$constraintTypeLabel = $this->entityIdLabelFormatter->formatEntityId(new ItemId($constraintTypeItemId));
352
+		} catch (InvalidArgumentException $e) {
353
+			$constraintTypeLabel = htmlspecialchars($constraintTypeItemId);
354 354
 		}
355 355
 		$constraintColumn = $this->getClaimLink(
356 356
 			$propertyId,
357
-			new NumericPropertyId( $this->config->get( 'WBQualityConstraintsPropertyConstraintId' ) ),
357
+			new NumericPropertyId($this->config->get('WBQualityConstraintsPropertyConstraintId')),
358 358
 			$constraintTypeLabel
359 359
 		);
360 360
 
@@ -362,16 +362,16 @@  discard block
 block discarded – undo
362 362
 		$table->appendRow(
363 363
 			[
364 364
 				new HtmlTableCellBuilder(
365
-					new HtmlArmor( $statusColumn )
365
+					new HtmlArmor($statusColumn)
366 366
 				),
367 367
 				new HtmlTableCellBuilder(
368
-					new HtmlArmor( $propertyColumn )
368
+					new HtmlArmor($propertyColumn)
369 369
 				),
370 370
 				new HtmlTableCellBuilder(
371
-					new HtmlArmor( $messageColumn )
371
+					new HtmlArmor($messageColumn)
372 372
 				),
373 373
 				new HtmlTableCellBuilder(
374
-					new HtmlArmor( $constraintColumn )
374
+					new HtmlArmor($constraintColumn)
375 375
 				),
376 376
 			]
377 377
 		);
@@ -386,15 +386,15 @@  discard block
 block discarded – undo
386 386
 	 *
387 387
 	 * @return string HTML
388 388
 	 */
389
-	protected function buildResultHeader( EntityId $entityId ): string {
390
-		$entityLink = sprintf( '%s (%s)',
391
-							   $this->entityIdLinkFormatter->formatEntityId( $entityId ),
392
-							   htmlspecialchars( $entityId->getSerialization() ) );
389
+	protected function buildResultHeader(EntityId $entityId): string {
390
+		$entityLink = sprintf('%s (%s)',
391
+							   $this->entityIdLinkFormatter->formatEntityId($entityId),
392
+							   htmlspecialchars($entityId->getSerialization()));
393 393
 
394 394
 		return Html::rawElement(
395 395
 			'h3',
396 396
 			[],
397
-			sprintf( '%s %s', $this->msg( 'wbqc-constraintreport-result-headline' )->escaped(), $entityLink )
397
+			sprintf('%s %s', $this->msg('wbqc-constraintreport-result-headline')->escaped(), $entityLink)
398 398
 		);
399 399
 	}
400 400
 
@@ -405,24 +405,24 @@  discard block
 block discarded – undo
405 405
 	 *
406 406
 	 * @return string HTML
407 407
 	 */
408
-	protected function buildSummary( array $results ): string {
408
+	protected function buildSummary(array $results): string {
409 409
 		$statuses = [];
410
-		foreach ( $results as $result ) {
411
-			$status = strtolower( $result->getStatus() );
412
-			$statuses[$status] = isset( $statuses[$status] ) ? $statuses[$status] + 1 : 1;
410
+		foreach ($results as $result) {
411
+			$status = strtolower($result->getStatus());
412
+			$statuses[$status] = isset($statuses[$status]) ? $statuses[$status] + 1 : 1;
413 413
 		}
414 414
 
415 415
 		$statusElements = [];
416
-		foreach ( $statuses as $status => $count ) {
417
-			if ( $count > 0 ) {
416
+		foreach ($statuses as $status => $count) {
417
+			if ($count > 0) {
418 418
 				$statusElements[] =
419
-					$this->formatStatus( $status )
419
+					$this->formatStatus($status)
420 420
 					. ': '
421 421
 					. $count;
422 422
 			}
423 423
 		}
424 424
 
425
-		return Html::rawElement( 'p', [], implode( ', ', $statusElements ) );
425
+		return Html::rawElement('p', [], implode(', ', $statusElements));
426 426
 	}
427 427
 
428 428
 	/**
@@ -434,8 +434,8 @@  discard block
 block discarded – undo
434 434
 	 *
435 435
 	 * @return string HTML
436 436
 	 */
437
-	private function formatStatus( string $status ): string {
438
-		$messageName = "wbqc-constraintreport-status-" . strtolower( $status );
437
+	private function formatStatus(string $status): string {
438
+		$messageName = "wbqc-constraintreport-status-".strtolower($status);
439 439
 		$statusIcons = [
440 440
 			CheckResult::STATUS_SUGGESTION => [
441 441
 				'icon' => 'suggestion-constraint-violation',
@@ -452,25 +452,25 @@  discard block
 block discarded – undo
452 452
 			],
453 453
 		];
454 454
 
455
-		if ( array_key_exists( $status, $statusIcons ) ) {
456
-			$iconWidget = new IconWidget( $statusIcons[$status] );
457
-			$iconHtml = $iconWidget->toString() . ' ';
455
+		if (array_key_exists($status, $statusIcons)) {
456
+			$iconWidget = new IconWidget($statusIcons[$status]);
457
+			$iconHtml = $iconWidget->toString().' ';
458 458
 		} else {
459 459
 			$iconHtml = '';
460 460
 		}
461 461
 
462
-		$labelWidget = new LabelWidget( [
463
-			'label' => $this->msg( $messageName )->text(),
464
-		] );
462
+		$labelWidget = new LabelWidget([
463
+			'label' => $this->msg($messageName)->text(),
464
+		]);
465 465
 		$labelHtml = $labelWidget->toString();
466 466
 
467 467
 		$formattedStatus =
468 468
 			Html::rawElement(
469 469
 				'span',
470 470
 				[
471
-					'class' => 'wbqc-status wbqc-status-' . $status,
471
+					'class' => 'wbqc-status wbqc-status-'.$status,
472 472
 				],
473
-				$iconHtml . $labelHtml
473
+				$iconHtml.$labelHtml
474 474
 			);
475 475
 
476 476
 		return $formattedStatus;
@@ -493,7 +493,7 @@  discard block
 block discarded – undo
493 493
 		return Html::rawElement(
494 494
 			'a',
495 495
 			[
496
-				'href' => $this->getClaimUrl( $entityId, $propertyId ),
496
+				'href' => $this->getClaimUrl($entityId, $propertyId),
497 497
 				'target' => '_blank',
498 498
 			],
499 499
 			$text
@@ -507,8 +507,8 @@  discard block
 block discarded – undo
507 507
 		EntityId $entityId,
508 508
 		NumericPropertyId $propertyId
509 509
 	): string {
510
-		$title = $this->entityTitleLookup->getTitleForId( $entityId );
511
-		$entityUrl = sprintf( '%s#%s', $title->getLocalURL(), $propertyId->getSerialization() );
510
+		$title = $this->entityTitleLookup->getTitleForId($entityId);
511
+		$entityUrl = sprintf('%s#%s', $title->getLocalURL(), $propertyId->getSerialization());
512 512
 
513 513
 		return $entityUrl;
514 514
 	}
Please login to merge, or discard this patch.
src/Html/HtmlTableHeaderBuilder.php 1 patch
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -33,9 +33,9 @@  discard block
 block discarded – undo
33 33
 	 *
34 34
 	 * @throws InvalidArgumentException
35 35
 	 */
36
-	public function __construct( $content, $isSortable = false ) {
37
-		Assert::parameterType( [ 'string', HtmlArmor::class ], $content, '$content' );
38
-		Assert::parameterType( 'boolean', $isSortable, '$isSortable' );
36
+	public function __construct($content, $isSortable = false) {
37
+		Assert::parameterType(['string', HtmlArmor::class], $content, '$content');
38
+		Assert::parameterType('boolean', $isSortable, '$isSortable');
39 39
 
40 40
 		$this->content = $content;
41 41
 		$this->isSortable = $isSortable;
@@ -45,7 +45,7 @@  discard block
 block discarded – undo
45 45
 	 * @return string HTML
46 46
 	 */
47 47
 	public function getContent() {
48
-		return HtmlArmor::getHtml( $this->content );
48
+		return HtmlArmor::getHtml($this->content);
49 49
 	}
50 50
 
51 51
 	/**
@@ -61,13 +61,13 @@  discard block
 block discarded – undo
61 61
 	 * @return string HTML
62 62
 	 */
63 63
 	public function toHtml() {
64
-		$attributes = [ 'role' => 'columnheader button' ];
64
+		$attributes = ['role' => 'columnheader button'];
65 65
 
66
-		if ( !$this->isSortable ) {
66
+		if (!$this->isSortable) {
67 67
 			$attributes['class'] = 'unsortable';
68 68
 		}
69 69
 
70
-		return Html::rawElement( 'th', $attributes, $this->getContent() );
70
+		return Html::rawElement('th', $attributes, $this->getContent());
71 71
 	}
72 72
 
73 73
 }
Please login to merge, or discard this patch.
src/Html/HtmlTableBuilder.php 1 patch
Spacing   +33 added lines, -33 removed lines patch added patch discarded remove patch
@@ -32,9 +32,9 @@  discard block
 block discarded – undo
32 32
 	/**
33 33
 	 * @param array $headers
34 34
 	 */
35
-	public function __construct( array $headers ) {
36
-		foreach ( $headers as $header ) {
37
-			$this->addHeader( $header );
35
+	public function __construct(array $headers) {
36
+		foreach ($headers as $header) {
37
+			$this->addHeader($header);
38 38
 		}
39 39
 	}
40 40
 
@@ -43,16 +43,16 @@  discard block
 block discarded – undo
43 43
 	 *
44 44
 	 * @throws InvalidArgumentException
45 45
 	 */
46
-	private function addHeader( $header ) {
47
-		Assert::parameterType( [ 'string', HtmlTableHeaderBuilder::class ], $header, '$header' );
46
+	private function addHeader($header) {
47
+		Assert::parameterType(['string', HtmlTableHeaderBuilder::class], $header, '$header');
48 48
 
49
-		if ( is_string( $header ) ) {
50
-			$header = new HtmlTableHeaderBuilder( $header );
49
+		if (is_string($header)) {
50
+			$header = new HtmlTableHeaderBuilder($header);
51 51
 		}
52 52
 
53 53
 		$this->headers[] = $header;
54 54
 
55
-		if ( $header->getIsSortable() ) {
55
+		if ($header->getIsSortable()) {
56 56
 			$this->isSortable = true;
57 57
 		}
58 58
 	}
@@ -85,12 +85,12 @@  discard block
 block discarded – undo
85 85
 	 *
86 86
 	 * @throws InvalidArgumentException
87 87
 	 */
88
-	public function appendRow( array $cells ) {
89
-		foreach ( $cells as $key => $cell ) {
90
-			if ( is_string( $cell ) ) {
91
-				$cells[$key] = new HtmlTableCellBuilder( $cell );
92
-			} elseif ( !( $cell instanceof HtmlTableCellBuilder ) ) {
93
-				throw new InvalidArgumentException( '$cells must be array of HtmlTableCell objects.' );
88
+	public function appendRow(array $cells) {
89
+		foreach ($cells as $key => $cell) {
90
+			if (is_string($cell)) {
91
+				$cells[$key] = new HtmlTableCellBuilder($cell);
92
+			} elseif (!($cell instanceof HtmlTableCellBuilder)) {
93
+				throw new InvalidArgumentException('$cells must be array of HtmlTableCell objects.');
94 94
 			}
95 95
 		}
96 96
 
@@ -104,13 +104,13 @@  discard block
 block discarded – undo
104 104
 	 *
105 105
 	 * @throws InvalidArgumentException
106 106
 	 */
107
-	public function appendRows( array $rows ) {
108
-		foreach ( $rows as $cells ) {
109
-			if ( !is_array( $cells ) ) {
110
-				throw new InvalidArgumentException( '$rows must be array of arrays of HtmlTableCell objects.' );
107
+	public function appendRows(array $rows) {
108
+		foreach ($rows as $cells) {
109
+			if (!is_array($cells)) {
110
+				throw new InvalidArgumentException('$rows must be array of arrays of HtmlTableCell objects.');
111 111
 			}
112 112
 
113
-			$this->appendRow( $cells );
113
+			$this->appendRow($cells);
114 114
 		}
115 115
 	}
116 116
 
@@ -122,38 +122,38 @@  discard block
 block discarded – undo
122 122
 	public function toHtml() {
123 123
 		// Open table
124 124
 		$tableClasses = 'wikitable';
125
-		if ( $this->isSortable ) {
125
+		if ($this->isSortable) {
126 126
 			$tableClasses .= ' sortable';
127 127
 		}
128
-		$html = Html::openElement( 'table', [ 'class' => $tableClasses ] );
128
+		$html = Html::openElement('table', ['class' => $tableClasses]);
129 129
 
130 130
 		// Write headers
131
-		$html .= Html::openElement( 'thead' );
132
-		$html .= Html::openElement( 'tr' );
133
-		foreach ( $this->headers as $header ) {
131
+		$html .= Html::openElement('thead');
132
+		$html .= Html::openElement('tr');
133
+		foreach ($this->headers as $header) {
134 134
 			$html .= $header->toHtml();
135 135
 		}
136
-		$html .= Html::closeElement( 'tr' );
137
-		$html .= Html::closeElement( 'thead' );
138
-		$html .= Html::openElement( 'tbody' );
136
+		$html .= Html::closeElement('tr');
137
+		$html .= Html::closeElement('thead');
138
+		$html .= Html::openElement('tbody');
139 139
 
140 140
 		// Write rows
141
-		foreach ( $this->rows as $row ) {
142
-			$html .= Html::openElement( 'tr' );
141
+		foreach ($this->rows as $row) {
142
+			$html .= Html::openElement('tr');
143 143
 
144 144
 			/**
145 145
 			 * @var HtmlTableCellBuilder $cell
146 146
 			 */
147
-			foreach ( $row as $cell ) {
147
+			foreach ($row as $cell) {
148 148
 				$html .= $cell->toHtml();
149 149
 			}
150 150
 
151
-			$html .= Html::closeElement( 'tr' );
151
+			$html .= Html::closeElement('tr');
152 152
 		}
153 153
 
154 154
 		// Close table
155
-		$html .= Html::closeElement( 'tbody' );
156
-		$html .= Html::closeElement( 'table' );
155
+		$html .= Html::closeElement('tbody');
156
+		$html .= Html::closeElement('table');
157 157
 
158 158
 		return $html;
159 159
 	}
Please login to merge, or discard this patch.
src/Html/HtmlTableCellBuilder.php 1 patch
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -31,8 +31,8 @@  discard block
 block discarded – undo
31 31
 	 *
32 32
 	 * @throws InvalidArgumentException
33 33
 	 */
34
-	public function __construct( $content, array $attributes = [] ) {
35
-		Assert::parameterType( [ 'string', HtmlArmor::class ], $content, '$content' );
34
+	public function __construct($content, array $attributes = []) {
35
+		Assert::parameterType(['string', HtmlArmor::class], $content, '$content');
36 36
 
37 37
 		$this->content = $content;
38 38
 		$this->attributes = $attributes;
@@ -42,7 +42,7 @@  discard block
 block discarded – undo
42 42
 	 * @return string HTML
43 43
 	 */
44 44
 	public function getContent() {
45
-		return HtmlArmor::getHtml( $this->content );
45
+		return HtmlArmor::getHtml($this->content);
46 46
 	}
47 47
 
48 48
 	/**
@@ -56,7 +56,7 @@  discard block
 block discarded – undo
56 56
 	 * @return string HTML
57 57
 	 */
58 58
 	public function toHtml() {
59
-		return Html::rawElement( 'td', $this->getAttributes(), $this->getContent() );
59
+		return Html::rawElement('td', $this->getAttributes(), $this->getContent());
60 60
 	}
61 61
 
62 62
 }
Please login to merge, or discard this patch.
src/WikibaseQualityConstraintsHooks.php 1 patch
Spacing   +35 added lines, -35 removed lines patch added patch discarded remove patch
@@ -26,8 +26,8 @@  discard block
 block discarded – undo
26 26
 	BeforePageDisplayHook
27 27
 {
28 28
 
29
-	public static function onWikibaseChange( Change $change ) {
30
-		if ( !( $change instanceof EntityChange ) ) {
29
+	public static function onWikibaseChange(Change $change) {
30
+		if (!($change instanceof EntityChange)) {
31 31
 			return;
32 32
 		}
33 33
 		/** @var EntityChange $change */
@@ -38,48 +38,48 @@  discard block
 block discarded – undo
38 38
 
39 39
 		// If jobs are enabled and the results would be stored in some way run a job.
40 40
 		if (
41
-			$config->get( 'WBQualityConstraintsEnableConstraintsCheckJobs' ) &&
42
-			$config->get( 'WBQualityConstraintsCacheCheckConstraintsResults' ) &&
41
+			$config->get('WBQualityConstraintsEnableConstraintsCheckJobs') &&
42
+			$config->get('WBQualityConstraintsCacheCheckConstraintsResults') &&
43 43
 			self::isSelectedForJobRunBasedOnPercentage()
44 44
 		) {
45
-			$params = [ 'entityId' => $change->getEntityId()->getSerialization() ];
45
+			$params = ['entityId' => $change->getEntityId()->getSerialization()];
46 46
 			$jobQueueGroup->lazyPush(
47
-				new JobSpecification( CheckConstraintsJob::COMMAND, $params )
47
+				new JobSpecification(CheckConstraintsJob::COMMAND, $params)
48 48
 			);
49 49
 		}
50 50
 
51
-		if ( $config->get( 'WBQualityConstraintsEnableConstraintsImportFromStatements' ) &&
52
-			self::isConstraintStatementsChange( $config, $change )
51
+		if ($config->get('WBQualityConstraintsEnableConstraintsImportFromStatements') &&
52
+			self::isConstraintStatementsChange($config, $change)
53 53
 		) {
54
-			$params = [ 'propertyId' => $change->getEntityId()->getSerialization() ];
54
+			$params = ['propertyId' => $change->getEntityId()->getSerialization()];
55 55
 			$metadata = $change->getMetadata();
56
-			if ( array_key_exists( 'rev_id', $metadata ) ) {
56
+			if (array_key_exists('rev_id', $metadata)) {
57 57
 				$params['revisionId'] = $metadata['rev_id'];
58 58
 			}
59 59
 			$jobQueueGroup->push(
60
-				new JobSpecification( 'constraintsTableUpdate', $params )
60
+				new JobSpecification('constraintsTableUpdate', $params)
61 61
 			);
62 62
 		}
63 63
 	}
64 64
 
65 65
 	private static function isSelectedForJobRunBasedOnPercentage() {
66 66
 		$config = MediaWikiServices::getInstance()->getMainConfig();
67
-		$percentage = $config->get( 'WBQualityConstraintsEnableConstraintsCheckJobsRatio' );
67
+		$percentage = $config->get('WBQualityConstraintsEnableConstraintsCheckJobsRatio');
68 68
 
69
-		return mt_rand( 1, 100 ) <= $percentage;
69
+		return mt_rand(1, 100) <= $percentage;
70 70
 	}
71 71
 
72
-	public static function isConstraintStatementsChange( Config $config, Change $change ) {
73
-		if ( !( $change instanceof EntityChange ) ||
72
+	public static function isConstraintStatementsChange(Config $config, Change $change) {
73
+		if (!($change instanceof EntityChange) ||
74 74
 			 $change->getAction() !== EntityChange::UPDATE ||
75
-			 !( $change->getEntityId() instanceof NumericPropertyId )
75
+			 !($change->getEntityId() instanceof NumericPropertyId)
76 76
 		) {
77 77
 			return false;
78 78
 		}
79 79
 
80 80
 		$info = $change->getInfo();
81 81
 
82
-		if ( !array_key_exists( 'compactDiff', $info ) ) {
82
+		if (!array_key_exists('compactDiff', $info)) {
83 83
 			// the non-compact diff ($info['diff']) does not contain statement diffs (T110996),
84 84
 			// so we only know that the change *might* affect the constraint statements
85 85
 			return true;
@@ -88,50 +88,50 @@  discard block
 block discarded – undo
88 88
 		/** @var EntityDiffChangedAspects $aspects */
89 89
 		$aspects = $info['compactDiff'];
90 90
 
91
-		$propertyConstraintId = $config->get( 'WBQualityConstraintsPropertyConstraintId' );
92
-		return in_array( $propertyConstraintId, $aspects->getStatementChanges() );
91
+		$propertyConstraintId = $config->get('WBQualityConstraintsPropertyConstraintId');
92
+		return in_array($propertyConstraintId, $aspects->getStatementChanges());
93 93
 	}
94 94
 
95
-	public function onArticlePurge( $wikiPage ) {
95
+	public function onArticlePurge($wikiPage) {
96 96
 		$entityContentFactory = WikibaseRepo::getEntityContentFactory();
97
-		if ( $entityContentFactory->isEntityContentModel( $wikiPage->getContentModel() ) ) {
97
+		if ($entityContentFactory->isEntityContentModel($wikiPage->getContentModel())) {
98 98
 			$entityIdLookup = WikibaseRepo::getEntityIdLookup();
99
-			$entityId = $entityIdLookup->getEntityIdForTitle( $wikiPage->getTitle() );
100
-			if ( $entityId !== null ) {
99
+			$entityId = $entityIdLookup->getEntityIdForTitle($wikiPage->getTitle());
100
+			if ($entityId !== null) {
101 101
 				$resultsCache = ResultsCache::getDefaultInstance();
102
-				$resultsCache->delete( $entityId );
102
+				$resultsCache->delete($entityId);
103 103
 			}
104 104
 		}
105 105
 	}
106 106
 
107
-	public function onBeforePageDisplay( $out, $skin ): void {
107
+	public function onBeforePageDisplay($out, $skin): void {
108 108
 		$lookup = WikibaseRepo::getEntityNamespaceLookup();
109 109
 		$title = $out->getTitle();
110
-		if ( $title === null ) {
110
+		if ($title === null) {
111 111
 			return;
112 112
 		}
113 113
 
114
-		if ( !$lookup->isNamespaceWithEntities( $title->getNamespace() ) ) {
114
+		if (!$lookup->isNamespaceWithEntities($title->getNamespace())) {
115 115
 			return;
116 116
 		}
117
-		if ( empty( $out->getJsConfigVars()['wbIsEditView'] ) ) {
117
+		if (empty($out->getJsConfigVars()['wbIsEditView'])) {
118 118
 			return;
119 119
 		}
120 120
 
121 121
 		$services = MediaWikiServices::getInstance();
122 122
 		$config = $services->getMainConfig();
123 123
 
124
-		$isMobileView = ExtensionRegistry::getInstance()->isLoaded( 'MobileFrontend' ) &&
125
-			$services->getService( 'MobileFrontend.Context' )->shouldDisplayMobileView();
126
-		if ( $isMobileView ) {
124
+		$isMobileView = ExtensionRegistry::getInstance()->isLoaded('MobileFrontend') &&
125
+			$services->getService('MobileFrontend.Context')->shouldDisplayMobileView();
126
+		if ($isMobileView) {
127 127
 			return;
128 128
 		}
129 129
 
130
-		$out->addModules( 'wikibase.quality.constraints.suggestions' );
130
+		$out->addModules('wikibase.quality.constraints.suggestions');
131 131
 
132
-		if ( $config->get( 'WBQualityConstraintsShowConstraintViolationToNonLoggedInUsers' )
133
-			|| $out->getUser()->isRegistered() ) {
134
-				$out->addModules( 'wikibase.quality.constraints.gadget' );
132
+		if ($config->get('WBQualityConstraintsShowConstraintViolationToNonLoggedInUsers')
133
+			|| $out->getUser()->isRegistered()) {
134
+				$out->addModules('wikibase.quality.constraints.gadget');
135 135
 		}
136 136
 	}
137 137
 
Please login to merge, or discard this patch.
src/WikibaseQualityConstraintsSchemaHooks.php 1 patch
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -15,22 +15,22 @@
 block discarded – undo
15 15
 	/**
16 16
 	 * @param DatabaseUpdater $updater
17 17
 	 */
18
-	public function onLoadExtensionSchemaUpdates( $updater ) {
19
-		$dir = dirname( __DIR__ ) . '/sql/';
18
+	public function onLoadExtensionSchemaUpdates($updater) {
19
+		$dir = dirname(__DIR__).'/sql/';
20 20
 
21 21
 		$updater->addExtensionTable(
22 22
 			'wbqc_constraints',
23
-			$dir . "/{$updater->getDB()->getType()}/tables-generated.sql"
23
+			$dir."/{$updater->getDB()->getType()}/tables-generated.sql"
24 24
 		);
25 25
 		$updater->addExtensionField(
26 26
 			'wbqc_constraints',
27 27
 			'constraint_id',
28
-			$dir . '/patch-wbqc_constraints-constraint_id.sql'
28
+			$dir.'/patch-wbqc_constraints-constraint_id.sql'
29 29
 		);
30 30
 		$updater->addExtensionIndex(
31 31
 			'wbqc_constraints',
32 32
 			'wbqc_constraints_guid_uniq',
33
-			$dir . '/patch-wbqc_constraints-wbqc_constraints_guid_uniq.sql'
33
+			$dir.'/patch-wbqc_constraints-wbqc_constraints_guid_uniq.sql'
34 34
 		);
35 35
 	}
36 36
 
Please login to merge, or discard this patch.
src/ConstraintCheck/Checker/QualifiersChecker.php 1 patch
Spacing   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -67,9 +67,9 @@  discard block
 block discarded – undo
67 67
 	 * @throws ConstraintParameterException
68 68
 	 * @return CheckResult
69 69
 	 */
70
-	public function checkConstraint( Context $context, Constraint $constraint ) {
71
-		if ( $context->getSnakRank() === Statement::RANK_DEPRECATED ) {
72
-			return new CheckResult( $context, $constraint, CheckResult::STATUS_DEPRECATED );
70
+	public function checkConstraint(Context $context, Constraint $constraint) {
71
+		if ($context->getSnakRank() === Statement::RANK_DEPRECATED) {
72
+			return new CheckResult($context, $constraint, CheckResult::STATUS_DEPRECATED);
73 73
 		}
74 74
 
75 75
 		$constraintParameters = $constraint->getConstraintParameters();
@@ -84,33 +84,33 @@  discard block
 block discarded – undo
84 84
 		$status = CheckResult::STATUS_COMPLIANCE;
85 85
 
86 86
 		/** @var Snak $qualifier */
87
-		foreach ( $context->getSnakStatement()->getQualifiers() as $qualifier ) {
87
+		foreach ($context->getSnakStatement()->getQualifiers() as $qualifier) {
88 88
 			$allowedQualifier = false;
89
-			foreach ( $properties as $property ) {
90
-				if ( $qualifier->getPropertyId()->equals( $property ) ) {
89
+			foreach ($properties as $property) {
90
+				if ($qualifier->getPropertyId()->equals($property)) {
91 91
 					$allowedQualifier = true;
92 92
 					break;
93 93
 				}
94 94
 			}
95
-			if ( !$allowedQualifier ) {
96
-				if ( $properties === [] || $properties === [ '' ] ) {
97
-					$message = ( new ViolationMessage( 'wbqc-violation-message-no-qualifiers' ) )
98
-						->withEntityId( $context->getSnak()->getPropertyId(), Role::CONSTRAINT_PROPERTY );
95
+			if (!$allowedQualifier) {
96
+				if ($properties === [] || $properties === ['']) {
97
+					$message = (new ViolationMessage('wbqc-violation-message-no-qualifiers'))
98
+						->withEntityId($context->getSnak()->getPropertyId(), Role::CONSTRAINT_PROPERTY);
99 99
 				} else {
100
-					$message = ( new ViolationMessage( 'wbqc-violation-message-qualifiers' ) )
101
-						->withEntityId( $context->getSnak()->getPropertyId(), Role::CONSTRAINT_PROPERTY )
102
-						->withEntityId( $qualifier->getPropertyId(), Role::QUALIFIER_PREDICATE )
103
-						->withEntityIdList( $properties, Role::QUALIFIER_PREDICATE );
100
+					$message = (new ViolationMessage('wbqc-violation-message-qualifiers'))
101
+						->withEntityId($context->getSnak()->getPropertyId(), Role::CONSTRAINT_PROPERTY)
102
+						->withEntityId($qualifier->getPropertyId(), Role::QUALIFIER_PREDICATE)
103
+						->withEntityIdList($properties, Role::QUALIFIER_PREDICATE);
104 104
 				}
105 105
 				$status = CheckResult::STATUS_VIOLATION;
106 106
 				break;
107 107
 			}
108 108
 		}
109 109
 
110
-		return new CheckResult( $context, $constraint, $status, $message );
110
+		return new CheckResult($context, $constraint, $status, $message);
111 111
 	}
112 112
 
113
-	public function checkConstraintParameters( Constraint $constraint ) {
113
+	public function checkConstraintParameters(Constraint $constraint) {
114 114
 		$constraintParameters = $constraint->getConstraintParameters();
115 115
 		$constraintTypeItemId = $constraint->getConstraintTypeItemId();
116 116
 		$exceptions = [];
@@ -119,7 +119,7 @@  discard block
 block discarded – undo
119 119
 				$constraintParameters,
120 120
 				$constraintTypeItemId
121 121
 			);
122
-		} catch ( ConstraintParameterException $e ) {
122
+		} catch (ConstraintParameterException $e) {
123 123
 			$exceptions[] = $e;
124 124
 		}
125 125
 		return $exceptions;
Please login to merge, or discard this patch.
src/ConstraintCheck/Helper/ConstraintParameterParser.php 1 patch
Spacing   +291 added lines, -291 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-declare( strict_types = 1 );
3
+declare(strict_types=1);
4 4
 
5 5
 namespace WikibaseQuality\ConstraintReport\ConstraintCheck\Helper;
6 6
 
@@ -68,15 +68,15 @@  discard block
 block discarded – undo
68 68
 	 * Check if any errors are recorded in the constraint parameters.
69 69
 	 * @throws ConstraintParameterException
70 70
 	 */
71
-	public function checkError( array $parameters ): void {
72
-		if ( array_key_exists( '@error', $parameters ) ) {
71
+	public function checkError(array $parameters): void {
72
+		if (array_key_exists('@error', $parameters)) {
73 73
 			$error = $parameters['@error'];
74
-			if ( array_key_exists( 'toolong', $error ) && $error['toolong'] ) {
74
+			if (array_key_exists('toolong', $error) && $error['toolong']) {
75 75
 				$msg = 'wbqc-violation-message-parameters-error-toolong';
76 76
 			} else {
77 77
 				$msg = 'wbqc-violation-message-parameters-error-unknown';
78 78
 			}
79
-			throw new ConstraintParameterException( new ViolationMessage( $msg ) );
79
+			throw new ConstraintParameterException(new ViolationMessage($msg));
80 80
 		}
81 81
 	}
82 82
 
@@ -84,11 +84,11 @@  discard block
 block discarded – undo
84 84
 	 * Require that $parameters contains exactly one $parameterId parameter.
85 85
 	 * @throws ConstraintParameterException
86 86
 	 */
87
-	private function requireSingleParameter( array $parameters, string $parameterId ): void {
88
-		if ( count( $parameters[$parameterId] ) !== 1 ) {
87
+	private function requireSingleParameter(array $parameters, string $parameterId): void {
88
+		if (count($parameters[$parameterId]) !== 1) {
89 89
 			throw new ConstraintParameterException(
90
-				( new ViolationMessage( 'wbqc-violation-message-parameter-single' ) )
91
-					->withEntityId( new NumericPropertyId( $parameterId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
90
+				(new ViolationMessage('wbqc-violation-message-parameter-single'))
91
+					->withEntityId(new NumericPropertyId($parameterId), Role::CONSTRAINT_PARAMETER_PROPERTY)
92 92
 			);
93 93
 		}
94 94
 	}
@@ -97,11 +97,11 @@  discard block
 block discarded – undo
97 97
 	 * Require that $snak is a {@link PropertyValueSnak}.
98 98
 	 * @throws ConstraintParameterException
99 99
 	 */
100
-	private function requireValueParameter( Snak $snak, string $parameterId ): void {
101
-		if ( !( $snak instanceof PropertyValueSnak ) ) {
100
+	private function requireValueParameter(Snak $snak, string $parameterId): void {
101
+		if (!($snak instanceof PropertyValueSnak)) {
102 102
 			throw new ConstraintParameterException(
103
-				( new ViolationMessage( 'wbqc-violation-message-parameter-value' ) )
104
-					->withEntityId( new NumericPropertyId( $parameterId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
103
+				(new ViolationMessage('wbqc-violation-message-parameter-value'))
104
+					->withEntityId(new NumericPropertyId($parameterId), Role::CONSTRAINT_PARAMETER_PROPERTY)
105 105
 			);
106 106
 		}
107 107
 	}
@@ -110,17 +110,17 @@  discard block
 block discarded – undo
110 110
 	 * Parse a single entity ID parameter.
111 111
 	 * @throws ConstraintParameterException
112 112
 	 */
113
-	private function parseEntityIdParameter( array $snakSerialization, string $parameterId ): EntityId {
114
-		$snak = $this->snakDeserializer->deserialize( $snakSerialization );
115
-		$this->requireValueParameter( $snak, $parameterId );
113
+	private function parseEntityIdParameter(array $snakSerialization, string $parameterId): EntityId {
114
+		$snak = $this->snakDeserializer->deserialize($snakSerialization);
115
+		$this->requireValueParameter($snak, $parameterId);
116 116
 		$value = $snak->getDataValue();
117
-		if ( $value instanceof EntityIdValue ) {
117
+		if ($value instanceof EntityIdValue) {
118 118
 			return $value->getEntityId();
119 119
 		} else {
120 120
 			throw new ConstraintParameterException(
121
-				( new ViolationMessage( 'wbqc-violation-message-parameter-entity' ) )
122
-					->withEntityId( new NumericPropertyId( $parameterId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
123
-					->withDataValue( $value, Role::CONSTRAINT_PARAMETER_VALUE )
121
+				(new ViolationMessage('wbqc-violation-message-parameter-entity'))
122
+					->withEntityId(new NumericPropertyId($parameterId), Role::CONSTRAINT_PARAMETER_PROPERTY)
123
+					->withDataValue($value, Role::CONSTRAINT_PARAMETER_VALUE)
124 124
 			);
125 125
 		}
126 126
 	}
@@ -131,20 +131,20 @@  discard block
 block discarded – undo
131 131
 	 * @throws ConstraintParameterException if the parameter is invalid or missing
132 132
 	 * @return string[] class entity ID serializations
133 133
 	 */
134
-	public function parseClassParameter( array $constraintParameters, string $constraintTypeItemId ): array {
135
-		$this->checkError( $constraintParameters );
136
-		$classId = $this->config->get( 'WBQualityConstraintsClassId' );
137
-		if ( !array_key_exists( $classId, $constraintParameters ) ) {
134
+	public function parseClassParameter(array $constraintParameters, string $constraintTypeItemId): array {
135
+		$this->checkError($constraintParameters);
136
+		$classId = $this->config->get('WBQualityConstraintsClassId');
137
+		if (!array_key_exists($classId, $constraintParameters)) {
138 138
 			throw new ConstraintParameterException(
139
-				( new ViolationMessage( 'wbqc-violation-message-parameter-needed' ) )
140
-					->withEntityId( new ItemId( $constraintTypeItemId ), Role::CONSTRAINT_TYPE_ITEM )
141
-					->withEntityId( new NumericPropertyId( $classId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
139
+				(new ViolationMessage('wbqc-violation-message-parameter-needed'))
140
+					->withEntityId(new ItemId($constraintTypeItemId), Role::CONSTRAINT_TYPE_ITEM)
141
+					->withEntityId(new NumericPropertyId($classId), Role::CONSTRAINT_PARAMETER_PROPERTY)
142 142
 			);
143 143
 		}
144 144
 
145 145
 		$classes = [];
146
-		foreach ( $constraintParameters[$classId] as $class ) {
147
-			$classes[] = $this->parseEntityIdParameter( $class, $classId )->getSerialization();
146
+		foreach ($constraintParameters[$classId] as $class) {
147
+			$classes[] = $this->parseEntityIdParameter($class, $classId)->getSerialization();
148 148
 		}
149 149
 		return $classes;
150 150
 	}
@@ -155,31 +155,31 @@  discard block
 block discarded – undo
155 155
 	 * @throws ConstraintParameterException if the parameter is invalid or missing
156 156
 	 * @return string 'instance', 'subclass', or 'instanceOrSubclass'
157 157
 	 */
158
-	public function parseRelationParameter( array $constraintParameters, string $constraintTypeItemId ): string {
159
-		$this->checkError( $constraintParameters );
160
-		$relationId = $this->config->get( 'WBQualityConstraintsRelationId' );
161
-		if ( !array_key_exists( $relationId, $constraintParameters ) ) {
158
+	public function parseRelationParameter(array $constraintParameters, string $constraintTypeItemId): string {
159
+		$this->checkError($constraintParameters);
160
+		$relationId = $this->config->get('WBQualityConstraintsRelationId');
161
+		if (!array_key_exists($relationId, $constraintParameters)) {
162 162
 			throw new ConstraintParameterException(
163
-				( new ViolationMessage( 'wbqc-violation-message-parameter-needed' ) )
164
-					->withEntityId( new ItemId( $constraintTypeItemId ), Role::CONSTRAINT_TYPE_ITEM )
165
-					->withEntityId( new NumericPropertyId( $relationId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
163
+				(new ViolationMessage('wbqc-violation-message-parameter-needed'))
164
+					->withEntityId(new ItemId($constraintTypeItemId), Role::CONSTRAINT_TYPE_ITEM)
165
+					->withEntityId(new NumericPropertyId($relationId), Role::CONSTRAINT_PARAMETER_PROPERTY)
166 166
 			);
167 167
 		}
168 168
 
169
-		$this->requireSingleParameter( $constraintParameters, $relationId );
170
-		$relationEntityId = $this->parseEntityIdParameter( $constraintParameters[$relationId][0], $relationId );
171
-		if ( !( $relationEntityId instanceof ItemId ) ) {
169
+		$this->requireSingleParameter($constraintParameters, $relationId);
170
+		$relationEntityId = $this->parseEntityIdParameter($constraintParameters[$relationId][0], $relationId);
171
+		if (!($relationEntityId instanceof ItemId)) {
172 172
 			throw new ConstraintParameterException(
173
-				( new ViolationMessage( 'wbqc-violation-message-parameter-item' ) )
174
-					->withEntityId( new NumericPropertyId( $relationId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
175
-					->withDataValue( new EntityIdValue( $relationEntityId ), Role::CONSTRAINT_PARAMETER_VALUE )
173
+				(new ViolationMessage('wbqc-violation-message-parameter-item'))
174
+					->withEntityId(new NumericPropertyId($relationId), Role::CONSTRAINT_PARAMETER_PROPERTY)
175
+					->withDataValue(new EntityIdValue($relationEntityId), Role::CONSTRAINT_PARAMETER_VALUE)
176 176
 			);
177 177
 		}
178
-		return $this->mapItemId( $relationEntityId, [
179
-			$this->config->get( 'WBQualityConstraintsInstanceOfRelationId' ) => 'instance',
180
-			$this->config->get( 'WBQualityConstraintsSubclassOfRelationId' ) => 'subclass',
181
-			$this->config->get( 'WBQualityConstraintsInstanceOrSubclassOfRelationId' ) => 'instanceOrSubclass',
182
-		], $relationId );
178
+		return $this->mapItemId($relationEntityId, [
179
+			$this->config->get('WBQualityConstraintsInstanceOfRelationId') => 'instance',
180
+			$this->config->get('WBQualityConstraintsSubclassOfRelationId') => 'subclass',
181
+			$this->config->get('WBQualityConstraintsInstanceOrSubclassOfRelationId') => 'instanceOrSubclass',
182
+		], $relationId);
183 183
 	}
184 184
 
185 185
 	/**
@@ -189,20 +189,20 @@  discard block
 block discarded – undo
189 189
 	 * @throws ConstraintParameterException
190 190
 	 * @return PropertyId
191 191
 	 */
192
-	private function parsePropertyIdParameter( array $snakSerialization, string $parameterId ): PropertyId {
193
-		$snak = $this->snakDeserializer->deserialize( $snakSerialization );
194
-		$this->requireValueParameter( $snak, $parameterId );
192
+	private function parsePropertyIdParameter(array $snakSerialization, string $parameterId): PropertyId {
193
+		$snak = $this->snakDeserializer->deserialize($snakSerialization);
194
+		$this->requireValueParameter($snak, $parameterId);
195 195
 		$value = $snak->getDataValue();
196
-		if ( $value instanceof EntityIdValue ) {
196
+		if ($value instanceof EntityIdValue) {
197 197
 			$id = $value->getEntityId();
198
-			if ( $id instanceof PropertyId ) {
198
+			if ($id instanceof PropertyId) {
199 199
 				return $id;
200 200
 			}
201 201
 		}
202 202
 		throw new ConstraintParameterException(
203
-			( new ViolationMessage( 'wbqc-violation-message-parameter-property' ) )
204
-				->withEntityId( new NumericPropertyId( $parameterId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
205
-				->withDataValue( $value, Role::CONSTRAINT_PARAMETER_VALUE )
203
+			(new ViolationMessage('wbqc-violation-message-parameter-property'))
204
+				->withEntityId(new NumericPropertyId($parameterId), Role::CONSTRAINT_PARAMETER_PROPERTY)
205
+				->withDataValue($value, Role::CONSTRAINT_PARAMETER_VALUE)
206 206
 		);
207 207
 	}
208 208
 
@@ -213,33 +213,33 @@  discard block
 block discarded – undo
213 213
 	 * @throws ConstraintParameterException if the parameter is invalid or missing
214 214
 	 * @return PropertyId
215 215
 	 */
216
-	public function parsePropertyParameter( array $constraintParameters, string $constraintTypeItemId ): PropertyId {
217
-		$this->checkError( $constraintParameters );
218
-		$propertyId = $this->config->get( 'WBQualityConstraintsPropertyId' );
219
-		if ( !array_key_exists( $propertyId, $constraintParameters ) ) {
216
+	public function parsePropertyParameter(array $constraintParameters, string $constraintTypeItemId): PropertyId {
217
+		$this->checkError($constraintParameters);
218
+		$propertyId = $this->config->get('WBQualityConstraintsPropertyId');
219
+		if (!array_key_exists($propertyId, $constraintParameters)) {
220 220
 			throw new ConstraintParameterException(
221
-				( new ViolationMessage( 'wbqc-violation-message-parameter-needed' ) )
222
-					->withEntityId( new ItemId( $constraintTypeItemId ), Role::CONSTRAINT_TYPE_ITEM )
223
-					->withEntityId( new NumericPropertyId( $propertyId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
221
+				(new ViolationMessage('wbqc-violation-message-parameter-needed'))
222
+					->withEntityId(new ItemId($constraintTypeItemId), Role::CONSTRAINT_TYPE_ITEM)
223
+					->withEntityId(new NumericPropertyId($propertyId), Role::CONSTRAINT_PARAMETER_PROPERTY)
224 224
 			);
225 225
 		}
226 226
 
227
-		$this->requireSingleParameter( $constraintParameters, $propertyId );
228
-		return $this->parsePropertyIdParameter( $constraintParameters[$propertyId][0], $propertyId );
227
+		$this->requireSingleParameter($constraintParameters, $propertyId);
228
+		return $this->parsePropertyIdParameter($constraintParameters[$propertyId][0], $propertyId);
229 229
 	}
230 230
 
231
-	private function parseItemIdParameter( PropertyValueSnak $snak, string $parameterId ): ItemIdSnakValue {
231
+	private function parseItemIdParameter(PropertyValueSnak $snak, string $parameterId): ItemIdSnakValue {
232 232
 		$dataValue = $snak->getDataValue();
233
-		if ( $dataValue instanceof EntityIdValue ) {
233
+		if ($dataValue instanceof EntityIdValue) {
234 234
 			$entityId = $dataValue->getEntityId();
235
-			if ( $entityId instanceof ItemId ) {
236
-				return ItemIdSnakValue::fromItemId( $entityId );
235
+			if ($entityId instanceof ItemId) {
236
+				return ItemIdSnakValue::fromItemId($entityId);
237 237
 			}
238 238
 		}
239 239
 		throw new ConstraintParameterException(
240
-			( new ViolationMessage( 'wbqc-violation-message-parameter-item' ) )
241
-				->withEntityId( new NumericPropertyId( $parameterId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
242
-				->withDataValue( $dataValue, Role::CONSTRAINT_PARAMETER_VALUE )
240
+			(new ViolationMessage('wbqc-violation-message-parameter-item'))
241
+				->withEntityId(new NumericPropertyId($parameterId), Role::CONSTRAINT_PARAMETER_PROPERTY)
242
+				->withDataValue($dataValue, Role::CONSTRAINT_PARAMETER_VALUE)
243 243
 		);
244 244
 	}
245 245
 
@@ -257,16 +257,16 @@  discard block
 block discarded – undo
257 257
 		bool $required,
258 258
 		string $parameterId = null
259 259
 	): array {
260
-		$this->checkError( $constraintParameters );
261
-		if ( $parameterId === null ) {
262
-			$parameterId = $this->config->get( 'WBQualityConstraintsQualifierOfPropertyConstraintId' );
260
+		$this->checkError($constraintParameters);
261
+		if ($parameterId === null) {
262
+			$parameterId = $this->config->get('WBQualityConstraintsQualifierOfPropertyConstraintId');
263 263
 		}
264
-		if ( !array_key_exists( $parameterId, $constraintParameters ) ) {
265
-			if ( $required ) {
264
+		if (!array_key_exists($parameterId, $constraintParameters)) {
265
+			if ($required) {
266 266
 				throw new ConstraintParameterException(
267
-					( new ViolationMessage( 'wbqc-violation-message-parameter-needed' ) )
268
-						->withEntityId( new ItemId( $constraintTypeItemId ), Role::CONSTRAINT_TYPE_ITEM )
269
-						->withEntityId( new NumericPropertyId( $parameterId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
267
+					(new ViolationMessage('wbqc-violation-message-parameter-needed'))
268
+						->withEntityId(new ItemId($constraintTypeItemId), Role::CONSTRAINT_TYPE_ITEM)
269
+						->withEntityId(new NumericPropertyId($parameterId), Role::CONSTRAINT_PARAMETER_PROPERTY)
270 270
 				);
271 271
 			} else {
272 272
 				return [];
@@ -274,11 +274,11 @@  discard block
 block discarded – undo
274 274
 		}
275 275
 
276 276
 		$values = [];
277
-		foreach ( $constraintParameters[$parameterId] as $parameter ) {
278
-			$snak = $this->snakDeserializer->deserialize( $parameter );
279
-			switch ( true ) {
277
+		foreach ($constraintParameters[$parameterId] as $parameter) {
278
+			$snak = $this->snakDeserializer->deserialize($parameter);
279
+			switch (true) {
280 280
 				case $snak instanceof PropertyValueSnak:
281
-					$values[] = $this->parseItemIdParameter( $snak, $parameterId );
281
+					$values[] = $this->parseItemIdParameter($snak, $parameterId);
282 282
 					break;
283 283
 				case $snak instanceof PropertySomeValueSnak:
284 284
 					$values[] = ItemIdSnakValue::someValue();
@@ -306,13 +306,13 @@  discard block
 block discarded – undo
306 306
 		bool $required,
307 307
 		string $parameterId
308 308
 	): array {
309
-		return array_map( static function ( ItemIdSnakValue $value ) use ( $parameterId ): ItemId {
310
-			if ( $value->isValue() ) {
309
+		return array_map(static function(ItemIdSnakValue $value) use ($parameterId): ItemId {
310
+			if ($value->isValue()) {
311 311
 				return $value->getItemId();
312 312
 			} else {
313 313
 				throw new ConstraintParameterException(
314
-					( new ViolationMessage( 'wbqc-violation-message-parameter-value' ) )
315
-						->withEntityId( new NumericPropertyId( $parameterId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
314
+					(new ViolationMessage('wbqc-violation-message-parameter-value'))
315
+						->withEntityId(new NumericPropertyId($parameterId), Role::CONSTRAINT_PARAMETER_PROPERTY)
316 316
 				);
317 317
 			}
318 318
 		}, $this->parseItemsParameter(
@@ -320,7 +320,7 @@  discard block
 block discarded – undo
320 320
 			$constraintTypeItemId,
321 321
 			$required,
322 322
 			$parameterId
323
-		) );
323
+		));
324 324
 	}
325 325
 
326 326
 	/**
@@ -328,18 +328,18 @@  discard block
 block discarded – undo
328 328
 	 * @throws ConstraintParameterException
329 329
 	 * @return mixed elements of $mapping
330 330
 	 */
331
-	private function mapItemId( ItemId $itemId, array $mapping, string $parameterId ) {
331
+	private function mapItemId(ItemId $itemId, array $mapping, string $parameterId) {
332 332
 		$serialization = $itemId->getSerialization();
333
-		if ( array_key_exists( $serialization, $mapping ) ) {
333
+		if (array_key_exists($serialization, $mapping)) {
334 334
 			return $mapping[$serialization];
335 335
 		} else {
336
-			$allowed = array_map( static function ( $id ) {
337
-				return new ItemId( $id );
338
-			}, array_keys( $mapping ) );
336
+			$allowed = array_map(static function($id) {
337
+				return new ItemId($id);
338
+			}, array_keys($mapping));
339 339
 			throw new ConstraintParameterException(
340
-				( new ViolationMessage( 'wbqc-violation-message-parameter-oneof' ) )
341
-					->withEntityId( new NumericPropertyId( $parameterId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
342
-					->withEntityIdList( $allowed, Role::CONSTRAINT_PARAMETER_VALUE )
340
+				(new ViolationMessage('wbqc-violation-message-parameter-oneof'))
341
+					->withEntityId(new NumericPropertyId($parameterId), Role::CONSTRAINT_PARAMETER_PROPERTY)
342
+					->withEntityIdList($allowed, Role::CONSTRAINT_PARAMETER_VALUE)
343 343
 			);
344 344
 		}
345 345
 	}
@@ -350,27 +350,27 @@  discard block
 block discarded – undo
350 350
 	 * @throws ConstraintParameterException if the parameter is invalid or missing
351 351
 	 * @return PropertyId[]
352 352
 	 */
353
-	public function parsePropertiesParameter( array $constraintParameters, string $constraintTypeItemId ): array {
354
-		$this->checkError( $constraintParameters );
355
-		$propertyId = $this->config->get( 'WBQualityConstraintsPropertyId' );
356
-		if ( !array_key_exists( $propertyId, $constraintParameters ) ) {
353
+	public function parsePropertiesParameter(array $constraintParameters, string $constraintTypeItemId): array {
354
+		$this->checkError($constraintParameters);
355
+		$propertyId = $this->config->get('WBQualityConstraintsPropertyId');
356
+		if (!array_key_exists($propertyId, $constraintParameters)) {
357 357
 			throw new ConstraintParameterException(
358
-				( new ViolationMessage( 'wbqc-violation-message-parameter-needed' ) )
359
-					->withEntityId( new ItemId( $constraintTypeItemId ), Role::CONSTRAINT_TYPE_ITEM )
360
-					->withEntityId( new NumericPropertyId( $propertyId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
358
+				(new ViolationMessage('wbqc-violation-message-parameter-needed'))
359
+					->withEntityId(new ItemId($constraintTypeItemId), Role::CONSTRAINT_TYPE_ITEM)
360
+					->withEntityId(new NumericPropertyId($propertyId), Role::CONSTRAINT_PARAMETER_PROPERTY)
361 361
 			);
362 362
 		}
363 363
 
364 364
 		$parameters = $constraintParameters[$propertyId];
365
-		if ( count( $parameters ) === 1 &&
366
-			$this->snakDeserializer->deserialize( $parameters[0] ) instanceof PropertyNoValueSnak
365
+		if (count($parameters) === 1 &&
366
+			$this->snakDeserializer->deserialize($parameters[0]) instanceof PropertyNoValueSnak
367 367
 		) {
368 368
 			return [];
369 369
 		}
370 370
 
371 371
 		$properties = [];
372
-		foreach ( $parameters as $parameter ) {
373
-			$properties[] = $this->parsePropertyIdParameter( $parameter, $propertyId );
372
+		foreach ($parameters as $parameter) {
373
+			$properties[] = $this->parsePropertyIdParameter($parameter, $propertyId);
374 374
 		}
375 375
 		return $properties;
376 376
 	}
@@ -378,24 +378,24 @@  discard block
 block discarded – undo
378 378
 	/**
379 379
 	 * @throws ConstraintParameterException
380 380
 	 */
381
-	private function parseValueOrNoValueParameter( array $snakSerialization, string $parameterId ): ?DataValue {
382
-		$snak = $this->snakDeserializer->deserialize( $snakSerialization );
383
-		if ( $snak instanceof PropertyValueSnak ) {
381
+	private function parseValueOrNoValueParameter(array $snakSerialization, string $parameterId): ?DataValue {
382
+		$snak = $this->snakDeserializer->deserialize($snakSerialization);
383
+		if ($snak instanceof PropertyValueSnak) {
384 384
 			return $snak->getDataValue();
385
-		} elseif ( $snak instanceof PropertyNoValueSnak ) {
385
+		} elseif ($snak instanceof PropertyNoValueSnak) {
386 386
 			return null;
387 387
 		} else {
388 388
 			throw new ConstraintParameterException(
389
-				( new ViolationMessage( 'wbqc-violation-message-parameter-value-or-novalue' ) )
390
-					->withEntityId( new NumericPropertyId( $parameterId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
389
+				(new ViolationMessage('wbqc-violation-message-parameter-value-or-novalue'))
390
+					->withEntityId(new NumericPropertyId($parameterId), Role::CONSTRAINT_PARAMETER_PROPERTY)
391 391
 			);
392 392
 		}
393 393
 	}
394 394
 
395
-	private function parseValueOrNoValueOrNowParameter( array $snakSerialization, string $parameterId ): ?DataValue {
395
+	private function parseValueOrNoValueOrNowParameter(array $snakSerialization, string $parameterId): ?DataValue {
396 396
 		try {
397
-			return $this->parseValueOrNoValueParameter( $snakSerialization, $parameterId );
398
-		} catch ( ConstraintParameterException $e ) {
397
+			return $this->parseValueOrNoValueParameter($snakSerialization, $parameterId);
398
+		} catch (ConstraintParameterException $e) {
399 399
 			// unknown value means “now”
400 400
 			return new NowValue();
401 401
 		}
@@ -404,14 +404,14 @@  discard block
 block discarded – undo
404 404
 	/**
405 405
 	 * Checks whether there is exactly one non-null quantity with the given unit.
406 406
 	 */
407
-	private function exactlyOneQuantityWithUnit( ?DataValue $min, ?DataValue $max, string $unit ): bool {
408
-		if ( !( $min instanceof UnboundedQuantityValue ) ||
409
-			!( $max instanceof UnboundedQuantityValue )
407
+	private function exactlyOneQuantityWithUnit(?DataValue $min, ?DataValue $max, string $unit): bool {
408
+		if (!($min instanceof UnboundedQuantityValue) ||
409
+			!($max instanceof UnboundedQuantityValue)
410 410
 		) {
411 411
 			return false;
412 412
 		}
413 413
 
414
-		return ( $min->getUnit() === $unit ) !== ( $max->getUnit() === $unit );
414
+		return ($min->getUnit() === $unit) !== ($max->getUnit() === $unit);
415 415
 	}
416 416
 
417 417
 	/**
@@ -431,41 +431,41 @@  discard block
 block discarded – undo
431 431
 		string $constraintTypeItemId,
432 432
 		string $type
433 433
 	): array {
434
-		$this->checkError( $constraintParameters );
435
-		if ( !array_key_exists( $minimumId, $constraintParameters ) ||
436
-			!array_key_exists( $maximumId, $constraintParameters )
434
+		$this->checkError($constraintParameters);
435
+		if (!array_key_exists($minimumId, $constraintParameters) ||
436
+			!array_key_exists($maximumId, $constraintParameters)
437 437
 		) {
438 438
 			throw new ConstraintParameterException(
439
-				( new ViolationMessage( 'wbqc-violation-message-range-parameters-needed' ) )
440
-					->withDataValueType( $type )
441
-					->withEntityId( new NumericPropertyId( $minimumId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
442
-					->withEntityId( new NumericPropertyId( $maximumId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
443
-					->withEntityId( new ItemId( $constraintTypeItemId ), Role::CONSTRAINT_TYPE_ITEM )
439
+				(new ViolationMessage('wbqc-violation-message-range-parameters-needed'))
440
+					->withDataValueType($type)
441
+					->withEntityId(new NumericPropertyId($minimumId), Role::CONSTRAINT_PARAMETER_PROPERTY)
442
+					->withEntityId(new NumericPropertyId($maximumId), Role::CONSTRAINT_PARAMETER_PROPERTY)
443
+					->withEntityId(new ItemId($constraintTypeItemId), Role::CONSTRAINT_TYPE_ITEM)
444 444
 			);
445 445
 		}
446 446
 
447
-		$this->requireSingleParameter( $constraintParameters, $minimumId );
448
-		$this->requireSingleParameter( $constraintParameters, $maximumId );
447
+		$this->requireSingleParameter($constraintParameters, $minimumId);
448
+		$this->requireSingleParameter($constraintParameters, $maximumId);
449 449
 		$parseFunction = $type === 'time' ? 'parseValueOrNoValueOrNowParameter' : 'parseValueOrNoValueParameter';
450
-		$min = $this->$parseFunction( $constraintParameters[$minimumId][0], $minimumId );
451
-		$max = $this->$parseFunction( $constraintParameters[$maximumId][0], $maximumId );
450
+		$min = $this->$parseFunction($constraintParameters[$minimumId][0], $minimumId);
451
+		$max = $this->$parseFunction($constraintParameters[$maximumId][0], $maximumId);
452 452
 
453
-		$yearUnit = $this->config->get( 'WBQualityConstraintsYearUnit' );
454
-		if ( $this->exactlyOneQuantityWithUnit( $min, $max, $yearUnit ) ) {
453
+		$yearUnit = $this->config->get('WBQualityConstraintsYearUnit');
454
+		if ($this->exactlyOneQuantityWithUnit($min, $max, $yearUnit)) {
455 455
 			throw new ConstraintParameterException(
456
-				new ViolationMessage( 'wbqc-violation-message-range-parameters-one-year' )
456
+				new ViolationMessage('wbqc-violation-message-range-parameters-one-year')
457 457
 			);
458 458
 		}
459
-		if ( $min === null && $max === null ||
460
-			$min !== null && $max !== null && $min->equals( $max ) ) {
459
+		if ($min === null && $max === null ||
460
+			$min !== null && $max !== null && $min->equals($max)) {
461 461
 			throw new ConstraintParameterException(
462
-				( new ViolationMessage( 'wbqc-violation-message-range-parameters-same' ) )
463
-					->withEntityId( new NumericPropertyId( $minimumId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
464
-					->withEntityId( new NumericPropertyId( $maximumId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
462
+				(new ViolationMessage('wbqc-violation-message-range-parameters-same'))
463
+					->withEntityId(new NumericPropertyId($minimumId), Role::CONSTRAINT_PARAMETER_PROPERTY)
464
+					->withEntityId(new NumericPropertyId($maximumId), Role::CONSTRAINT_PARAMETER_PROPERTY)
465 465
 			);
466 466
 		}
467 467
 
468
-		return [ $min, $max ];
468
+		return [$min, $max];
469 469
 	}
470 470
 
471 471
 	/**
@@ -475,11 +475,11 @@  discard block
 block discarded – undo
475 475
 	 * @throws ConstraintParameterException if the parameter is invalid or missing
476 476
 	 * @return DataValue[] a pair of two data values, either of which may be null to signify an open range
477 477
 	 */
478
-	public function parseQuantityRangeParameter( array $constraintParameters, string $constraintTypeItemId ): array {
478
+	public function parseQuantityRangeParameter(array $constraintParameters, string $constraintTypeItemId): array {
479 479
 		return $this->parseRangeParameter(
480 480
 			$constraintParameters,
481
-			$this->config->get( 'WBQualityConstraintsMinimumQuantityId' ),
482
-			$this->config->get( 'WBQualityConstraintsMaximumQuantityId' ),
481
+			$this->config->get('WBQualityConstraintsMinimumQuantityId'),
482
+			$this->config->get('WBQualityConstraintsMaximumQuantityId'),
483 483
 			$constraintTypeItemId,
484 484
 			'quantity'
485 485
 		);
@@ -492,11 +492,11 @@  discard block
 block discarded – undo
492 492
 	 * @throws ConstraintParameterException if the parameter is invalid or missing
493 493
 	 * @return DataValue[] a pair of two data values, either of which may be null to signify an open range
494 494
 	 */
495
-	public function parseTimeRangeParameter( array $constraintParameters, string $constraintTypeItemId ): array {
495
+	public function parseTimeRangeParameter(array $constraintParameters, string $constraintTypeItemId): array {
496 496
 		return $this->parseRangeParameter(
497 497
 			$constraintParameters,
498
-			$this->config->get( 'WBQualityConstraintsMinimumDateId' ),
499
-			$this->config->get( 'WBQualityConstraintsMaximumDateId' ),
498
+			$this->config->get('WBQualityConstraintsMinimumDateId'),
499
+			$this->config->get('WBQualityConstraintsMaximumDateId'),
500 500
 			$constraintTypeItemId,
501 501
 			'time'
502 502
 		);
@@ -509,20 +509,20 @@  discard block
 block discarded – undo
509 509
 	 * @throws ConstraintParameterException
510 510
 	 * @return string[]
511 511
 	 */
512
-	public function parseLanguageParameter( array $constraintParameters, string $constraintTypeItemId ): array {
513
-		$this->checkError( $constraintParameters );
514
-		$languagePropertyId = $this->config->get( 'WBQualityConstraintsLanguagePropertyId' );
515
-		if ( !array_key_exists( $languagePropertyId, $constraintParameters ) ) {
512
+	public function parseLanguageParameter(array $constraintParameters, string $constraintTypeItemId): array {
513
+		$this->checkError($constraintParameters);
514
+		$languagePropertyId = $this->config->get('WBQualityConstraintsLanguagePropertyId');
515
+		if (!array_key_exists($languagePropertyId, $constraintParameters)) {
516 516
 			throw new ConstraintParameterException(
517
-				( new ViolationMessage( 'wbqc-violation-message-parameter-needed' ) )
518
-					->withEntityId( new ItemId( $constraintTypeItemId ), Role::CONSTRAINT_TYPE_ITEM )
519
-					->withEntityId( new NumericPropertyId( $languagePropertyId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
517
+				(new ViolationMessage('wbqc-violation-message-parameter-needed'))
518
+					->withEntityId(new ItemId($constraintTypeItemId), Role::CONSTRAINT_TYPE_ITEM)
519
+					->withEntityId(new NumericPropertyId($languagePropertyId), Role::CONSTRAINT_PARAMETER_PROPERTY)
520 520
 			);
521 521
 		}
522 522
 
523 523
 		$languages = [];
524
-		foreach ( $constraintParameters[$languagePropertyId] as $snak ) {
525
-			$languages[] = $this->parseStringParameter( $snak, $languagePropertyId );
524
+		foreach ($constraintParameters[$languagePropertyId] as $snak) {
525
+			$languages[] = $this->parseStringParameter($snak, $languagePropertyId);
526 526
 		}
527 527
 		return $languages;
528 528
 	}
@@ -531,17 +531,17 @@  discard block
 block discarded – undo
531 531
 	 * Parse a single string parameter.
532 532
 	 * @throws ConstraintParameterException
533 533
 	 */
534
-	private function parseStringParameter( array $snakSerialization, string $parameterId ): string {
535
-		$snak = $this->snakDeserializer->deserialize( $snakSerialization );
536
-		$this->requireValueParameter( $snak, $parameterId );
534
+	private function parseStringParameter(array $snakSerialization, string $parameterId): string {
535
+		$snak = $this->snakDeserializer->deserialize($snakSerialization);
536
+		$this->requireValueParameter($snak, $parameterId);
537 537
 		$value = $snak->getDataValue();
538
-		if ( $value instanceof StringValue ) {
538
+		if ($value instanceof StringValue) {
539 539
 			return $value->getValue();
540 540
 		} else {
541 541
 			throw new ConstraintParameterException(
542
-				( new ViolationMessage( 'wbqc-violation-message-parameter-string' ) )
543
-					->withEntityId( new NumericPropertyId( $parameterId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
544
-					->withDataValue( $value, Role::CONSTRAINT_PARAMETER_VALUE )
542
+				(new ViolationMessage('wbqc-violation-message-parameter-string'))
543
+					->withEntityId(new NumericPropertyId($parameterId), Role::CONSTRAINT_PARAMETER_PROPERTY)
544
+					->withDataValue($value, Role::CONSTRAINT_PARAMETER_VALUE)
545 545
 			);
546 546
 		}
547 547
 	}
@@ -552,15 +552,15 @@  discard block
 block discarded – undo
552 552
 	 * @throws ConstraintParameterException if the parameter is invalid or missing
553 553
 	 * @return string
554 554
 	 */
555
-	public function parseNamespaceParameter( array $constraintParameters, string $constraintTypeItemId ): string {
556
-		$this->checkError( $constraintParameters );
557
-		$namespaceId = $this->config->get( 'WBQualityConstraintsNamespaceId' );
558
-		if ( !array_key_exists( $namespaceId, $constraintParameters ) ) {
555
+	public function parseNamespaceParameter(array $constraintParameters, string $constraintTypeItemId): string {
556
+		$this->checkError($constraintParameters);
557
+		$namespaceId = $this->config->get('WBQualityConstraintsNamespaceId');
558
+		if (!array_key_exists($namespaceId, $constraintParameters)) {
559 559
 			return '';
560 560
 		}
561 561
 
562
-		$this->requireSingleParameter( $constraintParameters, $namespaceId );
563
-		return $this->parseStringParameter( $constraintParameters[$namespaceId][0], $namespaceId );
562
+		$this->requireSingleParameter($constraintParameters, $namespaceId);
563
+		return $this->parseStringParameter($constraintParameters[$namespaceId][0], $namespaceId);
564 564
 	}
565 565
 
566 566
 	/**
@@ -569,19 +569,19 @@  discard block
 block discarded – undo
569 569
 	 * @throws ConstraintParameterException if the parameter is invalid or missing
570 570
 	 * @return string
571 571
 	 */
572
-	public function parseFormatParameter( array $constraintParameters, string $constraintTypeItemId ): string {
573
-		$this->checkError( $constraintParameters );
574
-		$formatId = $this->config->get( 'WBQualityConstraintsFormatAsARegularExpressionId' );
575
-		if ( !array_key_exists( $formatId, $constraintParameters ) ) {
572
+	public function parseFormatParameter(array $constraintParameters, string $constraintTypeItemId): string {
573
+		$this->checkError($constraintParameters);
574
+		$formatId = $this->config->get('WBQualityConstraintsFormatAsARegularExpressionId');
575
+		if (!array_key_exists($formatId, $constraintParameters)) {
576 576
 			throw new ConstraintParameterException(
577
-				( new ViolationMessage( 'wbqc-violation-message-parameter-needed' ) )
578
-					->withEntityId( new ItemId( $constraintTypeItemId ), Role::CONSTRAINT_TYPE_ITEM )
579
-					->withEntityId( new NumericPropertyId( $formatId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
577
+				(new ViolationMessage('wbqc-violation-message-parameter-needed'))
578
+					->withEntityId(new ItemId($constraintTypeItemId), Role::CONSTRAINT_TYPE_ITEM)
579
+					->withEntityId(new NumericPropertyId($formatId), Role::CONSTRAINT_PARAMETER_PROPERTY)
580 580
 			);
581 581
 		}
582 582
 
583
-		$this->requireSingleParameter( $constraintParameters, $formatId );
584
-		return $this->parseStringParameter( $constraintParameters[$formatId][0], $formatId );
583
+		$this->requireSingleParameter($constraintParameters, $formatId);
584
+		return $this->parseStringParameter($constraintParameters[$formatId][0], $formatId);
585 585
 	}
586 586
 
587 587
 	/**
@@ -589,16 +589,16 @@  discard block
 block discarded – undo
589 589
 	 * @throws ConstraintParameterException if the parameter is invalid
590 590
 	 * @return EntityId[]
591 591
 	 */
592
-	public function parseExceptionParameter( array $constraintParameters ): array {
593
-		$this->checkError( $constraintParameters );
594
-		$exceptionId = $this->config->get( 'WBQualityConstraintsExceptionToConstraintId' );
595
-		if ( !array_key_exists( $exceptionId, $constraintParameters ) ) {
592
+	public function parseExceptionParameter(array $constraintParameters): array {
593
+		$this->checkError($constraintParameters);
594
+		$exceptionId = $this->config->get('WBQualityConstraintsExceptionToConstraintId');
595
+		if (!array_key_exists($exceptionId, $constraintParameters)) {
596 596
 			return [];
597 597
 		}
598 598
 
599 599
 		return array_map(
600
-			function ( $snakSerialization ) use ( $exceptionId ) {
601
-				return $this->parseEntityIdParameter( $snakSerialization, $exceptionId );
600
+			function($snakSerialization) use ($exceptionId) {
601
+				return $this->parseEntityIdParameter($snakSerialization, $exceptionId);
602 602
 			},
603 603
 			$constraintParameters[$exceptionId]
604 604
 		);
@@ -609,39 +609,39 @@  discard block
 block discarded – undo
609 609
 	 * @throws ConstraintParameterException if the parameter is invalid
610 610
 	 * @return string|null 'mandatory', 'suggestion' or null
611 611
 	 */
612
-	public function parseConstraintStatusParameter( array $constraintParameters ): ?string {
613
-		$this->checkError( $constraintParameters );
614
-		$constraintStatusId = $this->config->get( 'WBQualityConstraintsConstraintStatusId' );
615
-		if ( !array_key_exists( $constraintStatusId, $constraintParameters ) ) {
612
+	public function parseConstraintStatusParameter(array $constraintParameters): ?string {
613
+		$this->checkError($constraintParameters);
614
+		$constraintStatusId = $this->config->get('WBQualityConstraintsConstraintStatusId');
615
+		if (!array_key_exists($constraintStatusId, $constraintParameters)) {
616 616
 			return null;
617 617
 		}
618 618
 
619
-		$mandatoryId = $this->config->get( 'WBQualityConstraintsMandatoryConstraintId' );
620
-		$supportedStatuses = [ new ItemId( $mandatoryId ) ];
621
-		if ( $this->config->get( 'WBQualityConstraintsEnableSuggestionConstraintStatus' ) ) {
622
-			$suggestionId = $this->config->get( 'WBQualityConstraintsSuggestionConstraintId' );
623
-			$supportedStatuses[] = new ItemId( $suggestionId );
619
+		$mandatoryId = $this->config->get('WBQualityConstraintsMandatoryConstraintId');
620
+		$supportedStatuses = [new ItemId($mandatoryId)];
621
+		if ($this->config->get('WBQualityConstraintsEnableSuggestionConstraintStatus')) {
622
+			$suggestionId = $this->config->get('WBQualityConstraintsSuggestionConstraintId');
623
+			$supportedStatuses[] = new ItemId($suggestionId);
624 624
 		} else {
625 625
 			$suggestionId = null;
626 626
 		}
627 627
 
628
-		$this->requireSingleParameter( $constraintParameters, $constraintStatusId );
629
-		$snak = $this->snakDeserializer->deserialize( $constraintParameters[$constraintStatusId][0] );
630
-		$this->requireValueParameter( $snak, $constraintStatusId );
628
+		$this->requireSingleParameter($constraintParameters, $constraintStatusId);
629
+		$snak = $this->snakDeserializer->deserialize($constraintParameters[$constraintStatusId][0]);
630
+		$this->requireValueParameter($snak, $constraintStatusId);
631 631
 		'@phan-var \Wikibase\DataModel\Snak\PropertyValueSnak $snak';
632 632
 		$dataValue = $snak->getDataValue();
633 633
 		'@phan-var EntityIdValue $dataValue';
634 634
 		$entityId = $dataValue->getEntityId();
635 635
 		$statusId = $entityId->getSerialization();
636 636
 
637
-		if ( $statusId === $mandatoryId ) {
637
+		if ($statusId === $mandatoryId) {
638 638
 			return 'mandatory';
639
-		} elseif ( $statusId === $suggestionId ) {
639
+		} elseif ($statusId === $suggestionId) {
640 640
 			return 'suggestion';
641 641
 		} else {
642 642
 			throw new ConstraintParameterException(
643
-				( new ViolationMessage( 'wbqc-violation-message-parameter-oneof' ) )
644
-					->withEntityId( new NumericPropertyId( $constraintStatusId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
643
+				(new ViolationMessage('wbqc-violation-message-parameter-oneof'))
644
+					->withEntityId(new NumericPropertyId($constraintStatusId), Role::CONSTRAINT_PARAMETER_PROPERTY)
645 645
 					->withEntityIdList(
646 646
 						$supportedStatuses,
647 647
 						Role::CONSTRAINT_PARAMETER_VALUE
@@ -654,12 +654,12 @@  discard block
 block discarded – undo
654 654
 	 * Require that $dataValue is a {@link MonolingualTextValue}.
655 655
 	 * @throws ConstraintParameterException
656 656
 	 */
657
-	private function requireMonolingualTextParameter( DataValue $dataValue, string $parameterId ): void {
658
-		if ( !( $dataValue instanceof MonolingualTextValue ) ) {
657
+	private function requireMonolingualTextParameter(DataValue $dataValue, string $parameterId): void {
658
+		if (!($dataValue instanceof MonolingualTextValue)) {
659 659
 			throw new ConstraintParameterException(
660
-				( new ViolationMessage( 'wbqc-violation-message-parameter-monolingualtext' ) )
661
-					->withEntityId( new NumericPropertyId( $parameterId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
662
-					->withDataValue( $dataValue, Role::CONSTRAINT_PARAMETER_VALUE )
660
+				(new ViolationMessage('wbqc-violation-message-parameter-monolingualtext'))
661
+					->withEntityId(new NumericPropertyId($parameterId), Role::CONSTRAINT_PARAMETER_PROPERTY)
662
+					->withDataValue($dataValue, Role::CONSTRAINT_PARAMETER_VALUE)
663 663
 			);
664 664
 		}
665 665
 	}
@@ -669,31 +669,31 @@  discard block
 block discarded – undo
669 669
 	 *
670 670
 	 * @throws ConstraintParameterException if invalid snaks are found or a language has multiple texts
671 671
 	 */
672
-	private function parseMultilingualTextParameter( array $snakSerializations, string $parameterId ): MultilingualTextValue {
672
+	private function parseMultilingualTextParameter(array $snakSerializations, string $parameterId): MultilingualTextValue {
673 673
 		$result = [];
674 674
 
675
-		foreach ( $snakSerializations as $snakSerialization ) {
676
-			$snak = $this->snakDeserializer->deserialize( $snakSerialization );
677
-			$this->requireValueParameter( $snak, $parameterId );
675
+		foreach ($snakSerializations as $snakSerialization) {
676
+			$snak = $this->snakDeserializer->deserialize($snakSerialization);
677
+			$this->requireValueParameter($snak, $parameterId);
678 678
 
679 679
 			$value = $snak->getDataValue();
680
-			$this->requireMonolingualTextParameter( $value, $parameterId );
680
+			$this->requireMonolingualTextParameter($value, $parameterId);
681 681
 			/** @var MonolingualTextValue $value */
682 682
 			'@phan-var MonolingualTextValue $value';
683 683
 
684 684
 			$code = $value->getLanguageCode();
685
-			if ( array_key_exists( $code, $result ) ) {
685
+			if (array_key_exists($code, $result)) {
686 686
 				throw new ConstraintParameterException(
687
-					( new ViolationMessage( 'wbqc-violation-message-parameter-single-per-language' ) )
688
-						->withEntityId( new NumericPropertyId( $parameterId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
689
-						->withLanguage( $code )
687
+					(new ViolationMessage('wbqc-violation-message-parameter-single-per-language'))
688
+						->withEntityId(new NumericPropertyId($parameterId), Role::CONSTRAINT_PARAMETER_PROPERTY)
689
+						->withLanguage($code)
690 690
 				);
691 691
 			}
692 692
 
693 693
 			$result[$code] = $value;
694 694
 		}
695 695
 
696
-		return new MultilingualTextValue( $result );
696
+		return new MultilingualTextValue($result);
697 697
 	}
698 698
 
699 699
 	/**
@@ -701,11 +701,11 @@  discard block
 block discarded – undo
701 701
 	 * @throws ConstraintParameterException if the parameter is invalid
702 702
 	 * @return MultilingualTextValue
703 703
 	 */
704
-	public function parseSyntaxClarificationParameter( array $constraintParameters ): MultilingualTextValue {
705
-		$syntaxClarificationId = $this->config->get( 'WBQualityConstraintsSyntaxClarificationId' );
704
+	public function parseSyntaxClarificationParameter(array $constraintParameters): MultilingualTextValue {
705
+		$syntaxClarificationId = $this->config->get('WBQualityConstraintsSyntaxClarificationId');
706 706
 
707
-		if ( !array_key_exists( $syntaxClarificationId, $constraintParameters ) ) {
708
-			return new MultilingualTextValue( [] );
707
+		if (!array_key_exists($syntaxClarificationId, $constraintParameters)) {
708
+			return new MultilingualTextValue([]);
709 709
 		}
710 710
 
711 711
 		$syntaxClarifications = $this->parseMultilingualTextParameter(
@@ -721,11 +721,11 @@  discard block
 block discarded – undo
721 721
 	 * @throws ConstraintParameterException if the parameter is invalid
722 722
 	 * @return MultilingualTextValue
723 723
 	 */
724
-	public function parseConstraintClarificationParameter( array $constraintParameters ): MultilingualTextValue {
725
-		$constraintClarificationId = $this->config->get( 'WBQualityConstraintsConstraintClarificationId' );
724
+	public function parseConstraintClarificationParameter(array $constraintParameters): MultilingualTextValue {
725
+		$constraintClarificationId = $this->config->get('WBQualityConstraintsConstraintClarificationId');
726 726
 
727
-		if ( !array_key_exists( $constraintClarificationId, $constraintParameters ) ) {
728
-			return new MultilingualTextValue( [] );
727
+		if (!array_key_exists($constraintClarificationId, $constraintParameters)) {
728
+			return new MultilingualTextValue([]);
729 729
 		}
730 730
 
731 731
 		$constraintClarifications = $this->parseMultilingualTextParameter(
@@ -758,14 +758,14 @@  discard block
 block discarded – undo
758 758
 		array $validContextTypes,
759 759
 		array $validEntityTypes
760 760
 	): array {
761
-		$contextTypeParameterId = $this->config->get( 'WBQualityConstraintsConstraintScopeId' );
761
+		$contextTypeParameterId = $this->config->get('WBQualityConstraintsConstraintScopeId');
762 762
 		$contextTypeItemIds = $this->parseItemIdsParameter(
763 763
 			$constraintParameters,
764 764
 			$constraintTypeItemId,
765 765
 			false,
766 766
 			$contextTypeParameterId
767 767
 		);
768
-		$entityTypeParameterId = $this->config->get( 'WBQualityConstraintsConstraintEntityTypesId' );
768
+		$entityTypeParameterId = $this->config->get('WBQualityConstraintsConstraintEntityTypesId');
769 769
 		$entityTypeItemIds = $this->parseItemIdsParameter(
770 770
 			$constraintParameters,
771 771
 			$constraintTypeItemId,
@@ -781,26 +781,26 @@  discard block
 block discarded – undo
781 781
 		$contextTypes = null;
782 782
 		$entityTypes = null;
783 783
 
784
-		if ( $contextTypeParameterId === $entityTypeParameterId ) {
784
+		if ($contextTypeParameterId === $entityTypeParameterId) {
785 785
 			$itemIds = $contextTypeItemIds;
786 786
 			$mapping = $contextTypeMapping + $entityTypeMapping;
787
-			foreach ( $itemIds as $itemId ) {
788
-				$mapped = $this->mapItemId( $itemId, $mapping, $contextTypeParameterId );
789
-				if ( in_array( $mapped, $contextTypeMapping, true ) ) {
787
+			foreach ($itemIds as $itemId) {
788
+				$mapped = $this->mapItemId($itemId, $mapping, $contextTypeParameterId);
789
+				if (in_array($mapped, $contextTypeMapping, true)) {
790 790
 					$contextTypes[] = $mapped;
791 791
 				} else {
792 792
 					$entityTypes[] = $mapped;
793 793
 				}
794 794
 			}
795 795
 		} else {
796
-			foreach ( $contextTypeItemIds as $contextTypeItemId ) {
796
+			foreach ($contextTypeItemIds as $contextTypeItemId) {
797 797
 				$contextTypes[] = $this->mapItemId(
798 798
 					$contextTypeItemId,
799 799
 					$contextTypeMapping,
800 800
 					$contextTypeParameterId
801 801
 				);
802 802
 			}
803
-			foreach ( $entityTypeItemIds as $entityTypeItemId ) {
803
+			foreach ($entityTypeItemIds as $entityTypeItemId) {
804 804
 				$entityTypes[] = $this->mapItemId(
805 805
 					$entityTypeItemId,
806 806
 					$entityTypeMapping,
@@ -809,21 +809,21 @@  discard block
 block discarded – undo
809 809
 			}
810 810
 		}
811 811
 
812
-		$this->checkValidScope( $constraintTypeItemId, $contextTypes, $validContextTypes );
813
-		$this->checkValidScope( $constraintTypeItemId, $entityTypes, $validEntityTypes );
812
+		$this->checkValidScope($constraintTypeItemId, $contextTypes, $validContextTypes);
813
+		$this->checkValidScope($constraintTypeItemId, $entityTypes, $validEntityTypes);
814 814
 
815
-		return [ $contextTypes, $entityTypes ];
815
+		return [$contextTypes, $entityTypes];
816 816
 	}
817 817
 
818
-	private function checkValidScope( string $constraintTypeItemId, ?array $types, array $validTypes ): void {
819
-		$invalidTypes = array_diff( $types ?: [], $validTypes );
820
-		if ( $invalidTypes !== [] ) {
821
-			$invalidType = array_pop( $invalidTypes );
818
+	private function checkValidScope(string $constraintTypeItemId, ?array $types, array $validTypes): void {
819
+		$invalidTypes = array_diff($types ?: [], $validTypes);
820
+		if ($invalidTypes !== []) {
821
+			$invalidType = array_pop($invalidTypes);
822 822
 			throw new ConstraintParameterException(
823
-				( new ViolationMessage( 'wbqc-violation-message-invalid-scope' ) )
824
-					->withConstraintScope( $invalidType, Role::CONSTRAINT_PARAMETER_VALUE )
825
-					->withEntityId( new ItemId( $constraintTypeItemId ), Role::CONSTRAINT_TYPE_ITEM )
826
-					->withConstraintScopeList( $validTypes, Role::CONSTRAINT_PARAMETER_VALUE )
823
+				(new ViolationMessage('wbqc-violation-message-invalid-scope'))
824
+					->withConstraintScope($invalidType, Role::CONSTRAINT_PARAMETER_VALUE)
825
+					->withEntityId(new ItemId($constraintTypeItemId), Role::CONSTRAINT_TYPE_ITEM)
826
+					->withConstraintScopeList($validTypes, Role::CONSTRAINT_PARAMETER_VALUE)
827 827
 			);
828 828
 		}
829 829
 	}
@@ -831,8 +831,8 @@  discard block
 block discarded – undo
831 831
 	/**
832 832
 	 * Turn an item ID into a full unit string (using the concept URI).
833 833
 	 */
834
-	private function parseUnitParameter( ItemId $unitId ): string {
835
-		return $this->unitItemConceptBaseUri . $unitId->getSerialization();
834
+	private function parseUnitParameter(ItemId $unitId): string {
835
+		return $this->unitItemConceptBaseUri.$unitId->getSerialization();
836 836
 	}
837 837
 
838 838
 	/**
@@ -840,23 +840,23 @@  discard block
 block discarded – undo
840 840
 	 *
841 841
 	 * @throws ConstraintParameterException
842 842
 	 */
843
-	private function parseUnitItem( ItemIdSnakValue $item ): UnitsParameter {
844
-		switch ( true ) {
843
+	private function parseUnitItem(ItemIdSnakValue $item): UnitsParameter {
844
+		switch (true) {
845 845
 			case $item->isValue():
846
-				$unit = $this->parseUnitParameter( $item->getItemId() );
846
+				$unit = $this->parseUnitParameter($item->getItemId());
847 847
 				return new UnitsParameter(
848
-					[ $item->getItemId() ],
849
-					[ UnboundedQuantityValue::newFromNumber( 1, $unit ) ],
848
+					[$item->getItemId()],
849
+					[UnboundedQuantityValue::newFromNumber(1, $unit)],
850 850
 					false
851 851
 				);
852 852
 			case $item->isSomeValue():
853
-				$qualifierId = $this->config->get( 'WBQualityConstraintsQualifierOfPropertyConstraintId' );
853
+				$qualifierId = $this->config->get('WBQualityConstraintsQualifierOfPropertyConstraintId');
854 854
 				throw new ConstraintParameterException(
855
-					( new ViolationMessage( 'wbqc-violation-message-parameter-value-or-novalue' ) )
856
-						->withEntityId( new NumericPropertyId( $qualifierId ), Role::CONSTRAINT_PARAMETER_PROPERTY )
855
+					(new ViolationMessage('wbqc-violation-message-parameter-value-or-novalue'))
856
+						->withEntityId(new NumericPropertyId($qualifierId), Role::CONSTRAINT_PARAMETER_PROPERTY)
857 857
 				);
858 858
 			case $item->isNoValue():
859
-				return new UnitsParameter( [], [], true );
859
+				return new UnitsParameter([], [], true);
860 860
 		}
861 861
 	}
862 862
 
@@ -866,36 +866,36 @@  discard block
 block discarded – undo
866 866
 	 * @throws ConstraintParameterException if the parameter is invalid or missing
867 867
 	 * @return UnitsParameter
868 868
 	 */
869
-	public function parseUnitsParameter( array $constraintParameters, string $constraintTypeItemId ): UnitsParameter {
870
-		$items = $this->parseItemsParameter( $constraintParameters, $constraintTypeItemId, true );
869
+	public function parseUnitsParameter(array $constraintParameters, string $constraintTypeItemId): UnitsParameter {
870
+		$items = $this->parseItemsParameter($constraintParameters, $constraintTypeItemId, true);
871 871
 		$unitItems = [];
872 872
 		$unitQuantities = [];
873 873
 		$unitlessAllowed = false;
874 874
 
875
-		foreach ( $items as $item ) {
876
-			$unit = $this->parseUnitItem( $item );
877
-			$unitItems = array_merge( $unitItems, $unit->getUnitItemIds() );
878
-			$unitQuantities = array_merge( $unitQuantities, $unit->getUnitQuantities() );
875
+		foreach ($items as $item) {
876
+			$unit = $this->parseUnitItem($item);
877
+			$unitItems = array_merge($unitItems, $unit->getUnitItemIds());
878
+			$unitQuantities = array_merge($unitQuantities, $unit->getUnitQuantities());
879 879
 			$unitlessAllowed = $unitlessAllowed || $unit->getUnitlessAllowed();
880 880
 		}
881 881
 
882
-		if ( $unitQuantities === [] && !$unitlessAllowed ) {
882
+		if ($unitQuantities === [] && !$unitlessAllowed) {
883 883
 			throw new LogicException(
884 884
 				'The "units" parameter is required, and yet we seem to be missing any allowed unit'
885 885
 			);
886 886
 		}
887 887
 
888
-		return new UnitsParameter( $unitItems, $unitQuantities, $unitlessAllowed );
888
+		return new UnitsParameter($unitItems, $unitQuantities, $unitlessAllowed);
889 889
 	}
890 890
 
891 891
 	private function getEntityTypeMapping(): array {
892 892
 		return [
893
-			$this->config->get( 'WBQualityConstraintsWikibaseItemId' ) => 'item',
894
-			$this->config->get( 'WBQualityConstraintsWikibasePropertyId' ) => 'property',
895
-			$this->config->get( 'WBQualityConstraintsWikibaseLexemeId' ) => 'lexeme',
896
-			$this->config->get( 'WBQualityConstraintsWikibaseFormId' ) => 'form',
897
-			$this->config->get( 'WBQualityConstraintsWikibaseSenseId' ) => 'sense',
898
-			$this->config->get( 'WBQualityConstraintsWikibaseMediaInfoId' ) => 'mediainfo',
893
+			$this->config->get('WBQualityConstraintsWikibaseItemId') => 'item',
894
+			$this->config->get('WBQualityConstraintsWikibasePropertyId') => 'property',
895
+			$this->config->get('WBQualityConstraintsWikibaseLexemeId') => 'lexeme',
896
+			$this->config->get('WBQualityConstraintsWikibaseFormId') => 'form',
897
+			$this->config->get('WBQualityConstraintsWikibaseSenseId') => 'sense',
898
+			$this->config->get('WBQualityConstraintsWikibaseMediaInfoId') => 'mediainfo',
899 899
 		];
900 900
 	}
901 901
 
@@ -905,10 +905,10 @@  discard block
 block discarded – undo
905 905
 	 * @throws ConstraintParameterException if the parameter is invalid or missing
906 906
 	 * @return EntityTypesParameter
907 907
 	 */
908
-	public function parseEntityTypesParameter( array $constraintParameters, string $constraintTypeItemId ): EntityTypesParameter {
908
+	public function parseEntityTypesParameter(array $constraintParameters, string $constraintTypeItemId): EntityTypesParameter {
909 909
 		$entityTypes = [];
910 910
 		$entityTypeItemIds = [];
911
-		$parameterId = $this->config->get( 'WBQualityConstraintsQualifierOfPropertyConstraintId' );
911
+		$parameterId = $this->config->get('WBQualityConstraintsQualifierOfPropertyConstraintId');
912 912
 		$itemIds = $this->parseItemIdsParameter(
913 913
 			$constraintParameters,
914 914
 			$constraintTypeItemId,
@@ -917,22 +917,22 @@  discard block
 block discarded – undo
917 917
 		);
918 918
 
919 919
 		$mapping = $this->getEntityTypeMapping();
920
-		foreach ( $itemIds as $itemId ) {
921
-			$entityType = $this->mapItemId( $itemId, $mapping, $parameterId );
920
+		foreach ($itemIds as $itemId) {
921
+			$entityType = $this->mapItemId($itemId, $mapping, $parameterId);
922 922
 			$entityTypes[] = $entityType;
923 923
 			$entityTypeItemIds[] = $itemId;
924 924
 		}
925 925
 
926
-		if ( $entityTypes === [] ) {
926
+		if ($entityTypes === []) {
927 927
 			// @codeCoverageIgnoreStart
928 928
 			throw new LogicException(
929
-				'The "entity types" parameter is required, ' .
929
+				'The "entity types" parameter is required, '.
930 930
 				'and yet we seem to be missing any allowed entity type'
931 931
 			);
932 932
 			// @codeCoverageIgnoreEnd
933 933
 		}
934 934
 
935
-		return new EntityTypesParameter( $entityTypes, $entityTypeItemIds );
935
+		return new EntityTypesParameter($entityTypes, $entityTypeItemIds);
936 936
 	}
937 937
 
938 938
 	/**
@@ -940,18 +940,18 @@  discard block
 block discarded – undo
940 940
 	 * @throws ConstraintParameterException if the parameter is invalid
941 941
 	 * @return PropertyId[]
942 942
 	 */
943
-	public function parseSeparatorsParameter( array $constraintParameters ): array {
944
-		$separatorId = $this->config->get( 'WBQualityConstraintsSeparatorId' );
943
+	public function parseSeparatorsParameter(array $constraintParameters): array {
944
+		$separatorId = $this->config->get('WBQualityConstraintsSeparatorId');
945 945
 
946
-		if ( !array_key_exists( $separatorId, $constraintParameters ) ) {
946
+		if (!array_key_exists($separatorId, $constraintParameters)) {
947 947
 			return [];
948 948
 		}
949 949
 
950 950
 		$parameters = $constraintParameters[$separatorId];
951 951
 		$separators = [];
952 952
 
953
-		foreach ( $parameters as $parameter ) {
954
-			$separators[] = $this->parsePropertyIdParameter( $parameter, $separatorId );
953
+		foreach ($parameters as $parameter) {
954
+			$separators[] = $this->parsePropertyIdParameter($parameter, $separatorId);
955 955
 		}
956 956
 
957 957
 		return $separators;
@@ -959,17 +959,17 @@  discard block
 block discarded – undo
959 959
 
960 960
 	private function getConstraintScopeContextTypeMapping(): array {
961 961
 		return [
962
-			$this->config->get( 'WBQualityConstraintsConstraintCheckedOnMainValueId' ) => Context::TYPE_STATEMENT,
963
-			$this->config->get( 'WBQualityConstraintsConstraintCheckedOnQualifiersId' ) => Context::TYPE_QUALIFIER,
964
-			$this->config->get( 'WBQualityConstraintsConstraintCheckedOnReferencesId' ) => Context::TYPE_REFERENCE,
962
+			$this->config->get('WBQualityConstraintsConstraintCheckedOnMainValueId') => Context::TYPE_STATEMENT,
963
+			$this->config->get('WBQualityConstraintsConstraintCheckedOnQualifiersId') => Context::TYPE_QUALIFIER,
964
+			$this->config->get('WBQualityConstraintsConstraintCheckedOnReferencesId') => Context::TYPE_REFERENCE,
965 965
 		];
966 966
 	}
967 967
 
968 968
 	private function getPropertyScopeContextTypeMapping(): array {
969 969
 		return [
970
-			$this->config->get( 'WBQualityConstraintsAsMainValueId' ) => Context::TYPE_STATEMENT,
971
-			$this->config->get( 'WBQualityConstraintsAsQualifiersId' ) => Context::TYPE_QUALIFIER,
972
-			$this->config->get( 'WBQualityConstraintsAsReferencesId' ) => Context::TYPE_REFERENCE,
970
+			$this->config->get('WBQualityConstraintsAsMainValueId') => Context::TYPE_STATEMENT,
971
+			$this->config->get('WBQualityConstraintsAsQualifiersId') => Context::TYPE_QUALIFIER,
972
+			$this->config->get('WBQualityConstraintsAsReferencesId') => Context::TYPE_REFERENCE,
973 973
 		];
974 974
 	}
975 975
 
@@ -979,9 +979,9 @@  discard block
 block discarded – undo
979 979
 	 * @throws ConstraintParameterException if the parameter is invalid or missing
980 980
 	 * @return string[] list of Context::TYPE_* constants
981 981
 	 */
982
-	public function parsePropertyScopeParameter( array $constraintParameters, string $constraintTypeItemId ): array {
982
+	public function parsePropertyScopeParameter(array $constraintParameters, string $constraintTypeItemId): array {
983 983
 		$contextTypes = [];
984
-		$parameterId = $this->config->get( 'WBQualityConstraintsPropertyScopeId' );
984
+		$parameterId = $this->config->get('WBQualityConstraintsPropertyScopeId');
985 985
 		$itemIds = $this->parseItemIdsParameter(
986 986
 			$constraintParameters,
987 987
 			$constraintTypeItemId,
@@ -990,14 +990,14 @@  discard block
 block discarded – undo
990 990
 		);
991 991
 
992 992
 		$mapping = $this->getPropertyScopeContextTypeMapping();
993
-		foreach ( $itemIds as $itemId ) {
994
-			$contextTypes[] = $this->mapItemId( $itemId, $mapping, $parameterId );
993
+		foreach ($itemIds as $itemId) {
994
+			$contextTypes[] = $this->mapItemId($itemId, $mapping, $parameterId);
995 995
 		}
996 996
 
997
-		if ( $contextTypes === [] ) {
997
+		if ($contextTypes === []) {
998 998
 			// @codeCoverageIgnoreStart
999 999
 			throw new LogicException(
1000
-				'The "property scope" parameter is required, ' .
1000
+				'The "property scope" parameter is required, '.
1001 1001
 				'and yet we seem to be missing any allowed scope'
1002 1002
 			);
1003 1003
 			// @codeCoverageIgnoreEnd
Please login to merge, or discard this patch.
src/Api/CheckConstraintParameters.php 1 patch
Spacing   +47 added lines, -47 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-declare( strict_types = 1 );
3
+declare(strict_types=1);
4 4
 
5 5
 namespace WikibaseQuality\ConstraintReport\Api;
6 6
 
@@ -79,9 +79,9 @@  discard block
 block discarded – undo
79 79
 		StatementGuidParser $statementGuidParser,
80 80
 		IBufferingStatsdDataFactory $dataFactory
81 81
 	) {
82
-		parent::__construct( $main, $name );
82
+		parent::__construct($main, $name);
83 83
 
84
-		$this->apiErrorReporter = $apiHelperFactory->getErrorReporter( $this );
84
+		$this->apiErrorReporter = $apiHelperFactory->getErrorReporter($this);
85 85
 		$this->languageFallbackChainFactory = $languageFallbackChainFactory;
86 86
 		$this->delegatingConstraintChecker = $delegatingConstraintChecker;
87 87
 		$this->violationMessageRendererFactory = $violationMessageRendererFactory;
@@ -97,39 +97,39 @@  discard block
 block discarded – undo
97 97
 		$params = $this->extractRequestParams();
98 98
 		$result = $this->getResult();
99 99
 
100
-		$propertyIds = $this->parsePropertyIds( $params[self::PARAM_PROPERTY_ID] );
101
-		$constraintIds = $this->parseConstraintIds( $params[self::PARAM_CONSTRAINT_ID] );
100
+		$propertyIds = $this->parsePropertyIds($params[self::PARAM_PROPERTY_ID]);
101
+		$constraintIds = $this->parseConstraintIds($params[self::PARAM_CONSTRAINT_ID]);
102 102
 
103
-		$this->checkPropertyIds( $propertyIds, $result );
104
-		$this->checkConstraintIds( $constraintIds, $result );
103
+		$this->checkPropertyIds($propertyIds, $result);
104
+		$this->checkConstraintIds($constraintIds, $result);
105 105
 
106
-		$result->addValue( null, 'success', 1 );
106
+		$result->addValue(null, 'success', 1);
107 107
 	}
108 108
 
109 109
 	/**
110 110
 	 * @param array|null $propertyIdSerializations
111 111
 	 * @return NumericPropertyId[]
112 112
 	 */
113
-	private function parsePropertyIds( ?array $propertyIdSerializations ): array {
114
-		if ( $propertyIdSerializations === null ) {
113
+	private function parsePropertyIds(?array $propertyIdSerializations): array {
114
+		if ($propertyIdSerializations === null) {
115 115
 			return [];
116
-		} elseif ( $propertyIdSerializations === [] ) {
116
+		} elseif ($propertyIdSerializations === []) {
117 117
 			$this->apiErrorReporter->dieError(
118
-				'If ' . self::PARAM_PROPERTY_ID . ' is specified, it must be nonempty.',
118
+				'If '.self::PARAM_PROPERTY_ID.' is specified, it must be nonempty.',
119 119
 				'no-data'
120 120
 			);
121 121
 		}
122 122
 
123 123
 		return array_map(
124
-			function ( $propertyIdSerialization ) {
124
+			function($propertyIdSerialization) {
125 125
 				try {
126
-					return new NumericPropertyId( $propertyIdSerialization );
127
-				} catch ( InvalidArgumentException $e ) {
126
+					return new NumericPropertyId($propertyIdSerialization);
127
+				} catch (InvalidArgumentException $e) {
128 128
 					$this->apiErrorReporter->dieError(
129 129
 						"Invalid id: $propertyIdSerialization",
130 130
 						'invalid-property-id',
131 131
 						0, // default argument
132
-						[ self::PARAM_PROPERTY_ID => $propertyIdSerialization ]
132
+						[self::PARAM_PROPERTY_ID => $propertyIdSerialization]
133 133
 					);
134 134
 				}
135 135
 			},
@@ -141,35 +141,35 @@  discard block
 block discarded – undo
141 141
 	 * @param array|null $constraintIds
142 142
 	 * @return string[]
143 143
 	 */
144
-	private function parseConstraintIds( ?array $constraintIds ): array {
145
-		if ( $constraintIds === null ) {
144
+	private function parseConstraintIds(?array $constraintIds): array {
145
+		if ($constraintIds === null) {
146 146
 			return [];
147
-		} elseif ( $constraintIds === [] ) {
147
+		} elseif ($constraintIds === []) {
148 148
 			$this->apiErrorReporter->dieError(
149
-				'If ' . self::PARAM_CONSTRAINT_ID . ' is specified, it must be nonempty.',
149
+				'If '.self::PARAM_CONSTRAINT_ID.' is specified, it must be nonempty.',
150 150
 				'no-data'
151 151
 			);
152 152
 		}
153 153
 
154 154
 		return array_map(
155
-			function ( $constraintId ) {
155
+			function($constraintId) {
156 156
 				try {
157
-					$propertyId = $this->statementGuidParser->parse( $constraintId )->getEntityId();
158
-					if ( !$propertyId instanceof NumericPropertyId ) {
157
+					$propertyId = $this->statementGuidParser->parse($constraintId)->getEntityId();
158
+					if (!$propertyId instanceof NumericPropertyId) {
159 159
 						$this->apiErrorReporter->dieError(
160 160
 							"Invalid property ID: {$propertyId->getSerialization()}",
161 161
 							'invalid-property-id',
162 162
 							0, // default argument
163
-							[ self::PARAM_CONSTRAINT_ID => $constraintId ]
163
+							[self::PARAM_CONSTRAINT_ID => $constraintId]
164 164
 						);
165 165
 					}
166 166
 					return $constraintId;
167
-				} catch ( StatementGuidParsingException $e ) {
167
+				} catch (StatementGuidParsingException $e) {
168 168
 					$this->apiErrorReporter->dieError(
169 169
 						"Invalid statement GUID: $constraintId",
170 170
 						'invalid-guid',
171 171
 						0, // default argument
172
-						[ self::PARAM_CONSTRAINT_ID => $constraintId ]
172
+						[self::PARAM_CONSTRAINT_ID => $constraintId]
173 173
 					);
174 174
 				}
175 175
 			},
@@ -181,12 +181,12 @@  discard block
 block discarded – undo
181 181
 	 * @param NumericPropertyId[] $propertyIds
182 182
 	 * @param ApiResult $result
183 183
 	 */
184
-	private function checkPropertyIds( array $propertyIds, ApiResult $result ): void {
185
-		foreach ( $propertyIds as $propertyId ) {
186
-			$result->addArrayType( $this->getResultPathForPropertyId( $propertyId ), 'assoc' );
184
+	private function checkPropertyIds(array $propertyIds, ApiResult $result): void {
185
+		foreach ($propertyIds as $propertyId) {
186
+			$result->addArrayType($this->getResultPathForPropertyId($propertyId), 'assoc');
187 187
 			$allConstraintExceptions = $this->delegatingConstraintChecker
188
-				->checkConstraintParametersOnPropertyId( $propertyId );
189
-			foreach ( $allConstraintExceptions as $constraintId => $constraintParameterExceptions ) {
188
+				->checkConstraintParametersOnPropertyId($propertyId);
189
+			foreach ($allConstraintExceptions as $constraintId => $constraintParameterExceptions) {
190 190
 				$this->addConstraintParameterExceptionsToResult(
191 191
 					$constraintId,
192 192
 					$constraintParameterExceptions,
@@ -200,15 +200,15 @@  discard block
 block discarded – undo
200 200
 	 * @param string[] $constraintIds
201 201
 	 * @param ApiResult $result
202 202
 	 */
203
-	private function checkConstraintIds( array $constraintIds, ApiResult $result ): void {
204
-		foreach ( $constraintIds as $constraintId ) {
205
-			if ( $result->getResultData( $this->getResultPathForConstraintId( $constraintId ) ) ) {
203
+	private function checkConstraintIds(array $constraintIds, ApiResult $result): void {
204
+		foreach ($constraintIds as $constraintId) {
205
+			if ($result->getResultData($this->getResultPathForConstraintId($constraintId))) {
206 206
 				// already checked as part of checkPropertyIds()
207 207
 				continue;
208 208
 			}
209 209
 			$constraintParameterExceptions = $this->delegatingConstraintChecker
210
-				->checkConstraintParametersOnConstraintId( $constraintId );
211
-			$this->addConstraintParameterExceptionsToResult( $constraintId, $constraintParameterExceptions, $result );
210
+				->checkConstraintParametersOnConstraintId($constraintId);
211
+			$this->addConstraintParameterExceptionsToResult($constraintId, $constraintParameterExceptions, $result);
212 212
 		}
213 213
 	}
214 214
 
@@ -216,18 +216,18 @@  discard block
 block discarded – undo
216 216
 	 * @param NumericPropertyId $propertyId
217 217
 	 * @return string[]
218 218
 	 */
219
-	private function getResultPathForPropertyId( NumericPropertyId $propertyId ): array {
220
-		return [ $this->getModuleName(), $propertyId->getSerialization() ];
219
+	private function getResultPathForPropertyId(NumericPropertyId $propertyId): array {
220
+		return [$this->getModuleName(), $propertyId->getSerialization()];
221 221
 	}
222 222
 
223 223
 	/**
224 224
 	 * @param string $constraintId
225 225
 	 * @return string[]
226 226
 	 */
227
-	private function getResultPathForConstraintId( string $constraintId ): array {
228
-		$propertyId = $this->statementGuidParser->parse( $constraintId )->getEntityId();
227
+	private function getResultPathForConstraintId(string $constraintId): array {
228
+		$propertyId = $this->statementGuidParser->parse($constraintId)->getEntityId();
229 229
 		'@phan-var NumericPropertyId $propertyId';
230
-		return array_merge( $this->getResultPathForPropertyId( $propertyId ), [ $constraintId ] );
230
+		return array_merge($this->getResultPathForPropertyId($propertyId), [$constraintId]);
231 231
 	}
232 232
 
233 233
 	/**
@@ -242,8 +242,8 @@  discard block
 block discarded – undo
242 242
 		?array $constraintParameterExceptions,
243 243
 		ApiResult $result
244 244
 	): void {
245
-		$path = $this->getResultPathForConstraintId( $constraintId );
246
-		if ( $constraintParameterExceptions === null ) {
245
+		$path = $this->getResultPathForConstraintId($constraintId);
246
+		if ($constraintParameterExceptions === null) {
247 247
 			$result->addValue(
248 248
 				$path,
249 249
 				self::KEY_STATUS,
@@ -260,11 +260,11 @@  discard block
 block discarded – undo
260 260
 			$violationMessageRenderer = $this->violationMessageRendererFactory
261 261
 				->getViolationMessageRenderer(
262 262
 					$language,
263
-					$this->languageFallbackChainFactory->newFromLanguage( $language ),
263
+					$this->languageFallbackChainFactory->newFromLanguage($language),
264 264
 					$this
265 265
 				);
266 266
 			$problems = [];
267
-			foreach ( $constraintParameterExceptions as $constraintParameterException ) {
267
+			foreach ($constraintParameterExceptions as $constraintParameterException) {
268 268
 				$problems[] = [
269 269
 					self::KEY_MESSAGE_HTML => $violationMessageRenderer->render(
270 270
 						$constraintParameterException->getViolationMessage() ),
@@ -303,8 +303,8 @@  discard block
 block discarded – undo
303 303
 		return [
304 304
 			'action=wbcheckconstraintparameters&propertyid=P247'
305 305
 				=> 'apihelp-wbcheckconstraintparameters-example-propertyid-1',
306
-			'action=wbcheckconstraintparameters&' .
307
-			'constraintid=P247$0fe1711e-4c0f-82ce-3af0-830b721d0fba|' .
306
+			'action=wbcheckconstraintparameters&'.
307
+			'constraintid=P247$0fe1711e-4c0f-82ce-3af0-830b721d0fba|'.
308 308
 			'P225$cdc71e4a-47a0-12c5-dfb3-3f6fc0b6613f'
309 309
 				=> 'apihelp-wbcheckconstraintparameters-example-constraintid-2',
310 310
 		];
Please login to merge, or discard this patch.