nur-sery/wip/schema/Result.php

31 lines
829 B
PHP
Raw Permalink Normal View History

2023-11-09 10:03:35 +04:00
<?php
2024-05-23 08:15:28 +04:00
namespace nur\sery\wip\schema;
2023-11-09 10:03:35 +04:00
2024-05-23 08:15:28 +04:00
use nur\sery\wip\schema\_assoc\AssocResult;
use nur\sery\wip\schema\_list\ListResult;
use nur\sery\wip\schema\_scalar\ScalarResult;
2023-11-28 08:20:33 +04:00
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
}