nur-sery/src/schema/Result.php

31 lines
813 B
PHP
Raw Normal View History

2023-11-09 10:03:35 +04:00
<?php
2023-11-27 22:39:35 +04:00
namespace nur\sery\schema;
2023-11-09 10:03:35 +04:00
2023-11-28 08:20:33 +04:00
use nur\sery\schema\_assoc\AssocResult;
use nur\sery\schema\_list\ListResult;
use nur\sery\schema\_scalar\ScalarResult;
2023-11-09 10:03:35 +04:00
/**
* Class Result: résultat de l'analyse ou de la normalisation d'une valeur
*/
2023-11-28 08:20:33 +04:00
abstract class Result {
function __construct() {
$this->reset();
2023-11-09 10:03:35 +04:00
}
2023-11-28 08:20:33 +04:00
function isAssoc(?AssocResult &$assoc=null): bool { return false; }
function isList(?ListResult &$list=null): bool { return false; }
function isScalar(?ScalarResult &$scalar=null): bool { return false; }
2023-11-09 10:03:35 +04:00
2023-11-28 00:20:42 +04:00
/**
* Obtenir la liste des clés valides pour les valeurs accessibles via cet
* objet
*/
abstract function getKeys(): array;
/** obtenir un objet pour gérer la valeur spécifiée */
abstract function getResult($key=null): Result;
2023-11-28 08:20:33 +04:00
abstract function reset(): void;
2023-11-09 10:03:35 +04:00
}