mediawiki-extensions-AbuseF.../includes/Parser/ParserStatus.php
Daimona Eaytoy b2dc2c4dd8 Refactor ParserStatus
ParserStatus is now more lightweight, and doesn't know about "result"
and "from cache". Instead, it has an isValid() method which is merely a
shorthand for checking whether getException() is null.

Introduce a child class, RuleCheckerStatus, which knows about result and
cache and can be (un)serialized.

This removes the ambiguity of the $result field, and helps the
transition to a new RuleChecker class.

Change-Id: I0dac7ab4febbfdabe72596631db630411d967ab5
2021-09-17 11:25:54 +00:00

60 lines
1.2 KiB
PHP

<?php
namespace MediaWiki\Extension\AbuseFilter\Parser;
use MediaWiki\Extension\AbuseFilter\Parser\Exception\ExceptionBase;
use MediaWiki\Extension\AbuseFilter\Parser\Exception\UserVisibleWarning;
class ParserStatus {
/** @var ExceptionBase|null */
protected $excep;
/** @var UserVisibleWarning[] */
protected $warnings;
/** @var int */
protected $condsUsed;
/**
* @param ExceptionBase|null $excep An exception thrown while parsing, or null if it parsed correctly
* @param UserVisibleWarning[] $warnings
* @param int $condsUsed
*/
public function __construct(
?ExceptionBase $excep,
array $warnings,
int $condsUsed
) {
$this->excep = $excep;
$this->warnings = $warnings;
$this->condsUsed = $condsUsed;
}
/**
* @return ExceptionBase|null
*/
public function getException(): ?ExceptionBase {
return $this->excep;
}
/**
* @return UserVisibleWarning[]
*/
public function getWarnings(): array {
return $this->warnings;
}
/**
* @return int
*/
public function getCondsUsed(): int {
return $this->condsUsed;
}
/**
* Whether the parsing/evaluation happened successfully.
* @return bool
*/
public function isValid(): bool {
return !$this->excep;
}
}