modifs.mineures sans commentaires

This commit is contained in:
Jephté Clain 2025-03-18 10:48:50 +04:00
parent bb311708d7
commit 91e6c0dcd2
2 changed files with 13 additions and 5 deletions

View File

@ -5,6 +5,7 @@ use IteratorAggregate;
use nur\sery\wip\schema\_assoc\AssocResult;
use nur\sery\wip\schema\_list\ListResult;
use nur\sery\wip\schema\_scalar\ScalarResult;
use Throwable;
/**
* Class Result: résultat de l'analyse ou de la normalisation d'une valeur
@ -17,6 +18,8 @@ use nur\sery\wip\schema\_scalar\ScalarResult;
* @property bool $normalized si la valeur est valide, est-elle normalisée?
* @property string|null $messageKey clé de message si la valeur n'est pas valide
* @property string|null $message message si la valeur n'est pas valide
* @property Throwable|null $exception l'exception qui a fait échouer la
* validation le cas échéant
* @property string|null $origValue valeur originale avant extraction et analyse
* @property mixed|null $normalizedValue la valeur normalisée si elle est
* disponible, null sinon. ce champ est utilisé comme optimisation si la valeur
@ -26,7 +29,7 @@ abstract class Result implements IteratorAggregate {
const KEYS = [
"resultAvailable",
"present", "available", "null", "valid", "normalized",
"messageKey", "message",
"messageKey", "message", "exception",
"origValue", "normalizedValue",
];

View File

@ -100,7 +100,7 @@ class ScalarResult extends Result {
}
}
function setInvalid($value, ScalarSchema $schema, ?Throwable $t=null): int {
function setInvalid($value, ScalarSchema $schema, ?Throwable $exception=null): int {
$this->resultAvailable = true;
$this->present = true;
$this->available = true;
@ -109,11 +109,12 @@ class ScalarResult extends Result {
$this->origValue = $value;
$this->messageKey = $messageKey = "invalid";
$message = $this->getMessage($messageKey, $schema);
if ($t !== null) {
$tmessage = ValueException::get_message($t);
if ($exception !== null) {
$tmessage = ValueException::get_message($exception);
if ($tmessage) $message = $tmessage;
}
$this->message = $message;
$this->exception = $exception;
return ref_analyze::INVALID;
}
@ -138,6 +139,10 @@ class ScalarResult extends Result {
}
function throw(bool $throw): void {
if ($throw) throw new ValueException($this->message);
if ($throw) {
$exception = $this->exception;
if ($exception !== null) throw $exception;
else throw new ValueException($this->message);
}
}
}