| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 | 
							- <?php
 
- /**
 
-  * Fluent interface for validating the contents of member variables.
 
-  * This should be immutable. See HTMLPurifier_ConfigSchema_Validator for
 
-  * use-cases. We name this an 'atom' because it's ONLY for validations that
 
-  * are independent and usually scalar.
 
-  */
 
- class HTMLPurifier_ConfigSchema_ValidatorAtom
 
- {
 
-     /**
 
-      * @type string
 
-      */
 
-     protected $context;
 
-     /**
 
-      * @type object
 
-      */
 
-     protected $obj;
 
-     /**
 
-      * @type string
 
-      */
 
-     protected $member;
 
-     /**
 
-      * @type mixed
 
-      */
 
-     protected $contents;
 
-     public function __construct($context, $obj, $member)
 
-     {
 
-         $this->context = $context;
 
-         $this->obj = $obj;
 
-         $this->member = $member;
 
-         $this->contents =& $obj->$member;
 
-     }
 
-     /**
 
-      * @return HTMLPurifier_ConfigSchema_ValidatorAtom
 
-      */
 
-     public function assertIsString()
 
-     {
 
-         if (!is_string($this->contents)) {
 
-             $this->error('must be a string');
 
-         }
 
-         return $this;
 
-     }
 
-     /**
 
-      * @return HTMLPurifier_ConfigSchema_ValidatorAtom
 
-      */
 
-     public function assertIsBool()
 
-     {
 
-         if (!is_bool($this->contents)) {
 
-             $this->error('must be a boolean');
 
-         }
 
-         return $this;
 
-     }
 
-     /**
 
-      * @return HTMLPurifier_ConfigSchema_ValidatorAtom
 
-      */
 
-     public function assertIsArray()
 
-     {
 
-         if (!is_array($this->contents)) {
 
-             $this->error('must be an array');
 
-         }
 
-         return $this;
 
-     }
 
-     /**
 
-      * @return HTMLPurifier_ConfigSchema_ValidatorAtom
 
-      */
 
-     public function assertNotNull()
 
-     {
 
-         if ($this->contents === null) {
 
-             $this->error('must not be null');
 
-         }
 
-         return $this;
 
-     }
 
-     /**
 
-      * @return HTMLPurifier_ConfigSchema_ValidatorAtom
 
-      */
 
-     public function assertAlnum()
 
-     {
 
-         $this->assertIsString();
 
-         if (!ctype_alnum($this->contents)) {
 
-             $this->error('must be alphanumeric');
 
-         }
 
-         return $this;
 
-     }
 
-     /**
 
-      * @return HTMLPurifier_ConfigSchema_ValidatorAtom
 
-      */
 
-     public function assertNotEmpty()
 
-     {
 
-         if (empty($this->contents)) {
 
-             $this->error('must not be empty');
 
-         }
 
-         return $this;
 
-     }
 
-     /**
 
-      * @return HTMLPurifier_ConfigSchema_ValidatorAtom
 
-      */
 
-     public function assertIsLookup()
 
-     {
 
-         $this->assertIsArray();
 
-         foreach ($this->contents as $v) {
 
-             if ($v !== true) {
 
-                 $this->error('must be a lookup array');
 
-             }
 
-         }
 
-         return $this;
 
-     }
 
-     /**
 
-      * @param string $msg
 
-      * @throws HTMLPurifier_ConfigSchema_Exception
 
-      */
 
-     protected function error($msg)
 
-     {
 
-         throw new HTMLPurifier_ConfigSchema_Exception(ucfirst($this->member) . ' in ' . $this->context . ' ' . $msg);
 
-     }
 
- }
 
- // vim: et sw=4 sts=4
 
 
  |