56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | /** | ||
|  |  * Super-class for definition datatype objects, implements serialization | ||
|  |  * functions for the class. | ||
|  |  */ | ||
|  | abstract class HTMLPurifier_Definition | ||
|  | { | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Has setup() been called yet? | ||
|  |      * @type bool | ||
|  |      */ | ||
|  |     public $setup = false; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * If true, write out the final definition object to the cache after | ||
|  |      * setup.  This will be true only if all invocations to get a raw | ||
|  |      * definition object are also optimized.  This does not cause file | ||
|  |      * system thrashing because on subsequent calls the cached object | ||
|  |      * is used and any writes to the raw definition object are short | ||
|  |      * circuited.  See enduser-customize.html for the high-level | ||
|  |      * picture. | ||
|  |      * @type bool | ||
|  |      */ | ||
|  |     public $optimized = null; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * What type of definition is it? | ||
|  |      * @type string | ||
|  |      */ | ||
|  |     public $type; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Sets up the definition object into the final form, something | ||
|  |      * not done by the constructor | ||
|  |      * @param HTMLPurifier_Config $config | ||
|  |      */ | ||
|  |     abstract protected function doSetup($config); | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Setup function that aborts if already setup | ||
|  |      * @param HTMLPurifier_Config $config | ||
|  |      */ | ||
|  |     public function setup($config) | ||
|  |     { | ||
|  |         if ($this->setup) { | ||
|  |             return; | ||
|  |         } | ||
|  |         $this->setup = true; | ||
|  |         $this->doSetup($config); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | // vim: et sw=4 sts=4
 |