64 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace nur\b\values;
 | 
						|
 | 
						|
use Throwable;
 | 
						|
 | 
						|
/**
 | 
						|
 * Interface IValue: wrapper vers une valeur avec éventuellement l'une de
 | 
						|
 * propriétés suivante:
 | 
						|
 * - indéfinie
 | 
						|
 * - indisponible (en erreur)
 | 
						|
 * - définie mais nulle
 | 
						|
 * - définie non nulle
 | 
						|
 * Une valeur peut être mutable ou non.
 | 
						|
 */
 | 
						|
interface IProxyValue extends IValueState {
 | 
						|
  /** tester si is_undef() peut retourner true */
 | 
						|
  function allowUndef(): bool;
 | 
						|
  /** tester si is_null() peut retourner true */
 | 
						|
  function allowNull(): bool;
 | 
						|
  /** tester si is_error() peut retourner true */
 | 
						|
  function allowError(): bool;
 | 
						|
 | 
						|
  /** tester si la valeur est indéfinie */
 | 
						|
  function isUndef(): bool;
 | 
						|
  /** tester si la valeur est définie et nulle */
 | 
						|
  function isNull(): bool;
 | 
						|
  /** tester si la valeur n'est pas disponible à cause d'une erreur */
 | 
						|
  function isError(): bool;
 | 
						|
  /** tester si la valeur est définie et non nulle */
 | 
						|
  function isValue(): bool;
 | 
						|
  /** tester si la valeur est modifiable */
 | 
						|
  function isMutable(): bool;
 | 
						|
 | 
						|
  /**
 | 
						|
   * En fonction de l'état actuel:
 | 
						|
   * - retourner la valeur si elle est définie
 | 
						|
   * - retourner $default si la valeur est indéfinie
 | 
						|
   * - lancer l'exception si is_error() est vrai
 | 
						|
   */
 | 
						|
  function get($default=null);
 | 
						|
 | 
						|
  /**
 | 
						|
   * obtenir l'exception si is_error() est vrai
 | 
						|
   *
 | 
						|
   * @throw ProxyValueException si ce n'est pas une erreur
 | 
						|
   */
 | 
						|
  function getError(): Throwable;
 | 
						|
 | 
						|
  /**
 | 
						|
   * modifier la valeur. retourner la valeur précédente
 | 
						|
   *
 | 
						|
   * @throws ProxyValueException si cet objet n'est pas modifiable
 | 
						|
   */
 | 
						|
  function set($value);
 | 
						|
 | 
						|
  /**
 | 
						|
   * rétablir cet objet à l'état indéfini
 | 
						|
   *
 | 
						|
   * @throws ProxyValueException si cet objet n'est pas modifiable ou ne
 | 
						|
   * supporte pas l'état "indéfini"
 | 
						|
   */
 | 
						|
  function reset();
 | 
						|
}
 |