[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/libraries/htmlpurifier/library/HTMLPurifier/ -> TokenFactory.php (source)

   1  <?php
   2  
   3  /**
   4   * Factory for token generation.
   5   *
   6   * @note Doing some benchmarking indicates that the new operator is much
   7   *       slower than the clone operator (even discounting the cost of the
   8   *       constructor).  This class is for that optimization.
   9   *       Other then that, there's not much point as we don't
  10   *       maintain parallel HTMLPurifier_Token hierarchies (the main reason why
  11   *       you'd want to use an abstract factory).
  12   * @todo Port DirectLex to use this
  13   */
  14  class HTMLPurifier_TokenFactory
  15  {
  16  
  17      /**
  18       * Prototypes that will be cloned.
  19       * @private
  20       */
  21      // p stands for prototype
  22      private $p_start, $p_end, $p_empty, $p_text, $p_comment;
  23  
  24      /**
  25       * Generates blank prototypes for cloning.
  26       */
  27      public function __construct() {
  28          $this->p_start  = new HTMLPurifier_Token_Start('', array());
  29          $this->p_end    = new HTMLPurifier_Token_End('');
  30          $this->p_empty  = new HTMLPurifier_Token_Empty('', array());
  31          $this->p_text   = new HTMLPurifier_Token_Text('');
  32          $this->p_comment= new HTMLPurifier_Token_Comment('');
  33      }
  34  
  35      /**
  36       * Creates a HTMLPurifier_Token_Start.
  37       * @param $name Tag name
  38       * @param $attr Associative array of attributes
  39       * @return Generated HTMLPurifier_Token_Start
  40       */
  41      public function createStart($name, $attr = array()) {
  42          $p = clone $this->p_start;
  43          $p->__construct($name, $attr);
  44          return $p;
  45      }
  46  
  47      /**
  48       * Creates a HTMLPurifier_Token_End.
  49       * @param $name Tag name
  50       * @return Generated HTMLPurifier_Token_End
  51       */
  52      public function createEnd($name) {
  53          $p = clone $this->p_end;
  54          $p->__construct($name);
  55          return $p;
  56      }
  57  
  58      /**
  59       * Creates a HTMLPurifier_Token_Empty.
  60       * @param $name Tag name
  61       * @param $attr Associative array of attributes
  62       * @return Generated HTMLPurifier_Token_Empty
  63       */
  64      public function createEmpty($name, $attr = array()) {
  65          $p = clone $this->p_empty;
  66          $p->__construct($name, $attr);
  67          return $p;
  68      }
  69  
  70      /**
  71       * Creates a HTMLPurifier_Token_Text.
  72       * @param $data Data of text token
  73       * @return Generated HTMLPurifier_Token_Text
  74       */
  75      public function createText($data) {
  76          $p = clone $this->p_text;
  77          $p->__construct($data);
  78          return $p;
  79      }
  80  
  81      /**
  82       * Creates a HTMLPurifier_Token_Comment.
  83       * @param $data Data of comment token
  84       * @return Generated HTMLPurifier_Token_Comment
  85       */
  86      public function createComment($data) {
  87          $p = clone $this->p_comment;
  88          $p->__construct($data);
  89          return $p;
  90      }
  91  
  92  }
  93  
  94  // vim: et sw=4 sts=4


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1