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
|
|
|
}
|