XmlImportToken.php 2.54 KB
Newer Older
imac's avatar
imac committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
<?php
/**
 * @author Olexandr Zanichkovsky <olexandr.zanichkovsky@zophiatech.com>
 * @package General
 */

/**
 * Represents a template token
 */
class XmlImportToken
{
  /**
   * Token Kind
   *
   * @var string
   */
  private $kind;

  /**
   * Token value
   *
   * @var mixed
   */
  private $value;

  /**
   * Token is a text
   */
  const KIND_TEXT = 'TEXT';

  /**
   * Token is a print statement
   */
  const KIND_PRINT = 'PRINT';

  /**
   * Token is a XPath literal
   */
  const KIND_XPATH = "XPATH";

  /**
   * Token is an IF keyword
   */
  const KIND_IF = "IF";

  /**
   * Token is an ENDIF keyword
   */
  const KIND_ENDIF = "ENDIF";

  /**
   * Token is an ELSEIF keyword
   */
  const KIND_ELSEIF = "ELSEIF";

  /**
   * Token is an ELSE keyword
   */
  const KIND_ELSE = "ELSE";

  /**
   * Token is a WITH keyword
   */
  const KIND_WITH = "WITH";

  /**
   * Token is an ENDWITH keyword
   */
  const KIND_ENDWITH = "ENDWITH";

  /**
   * Token is a FOREACH keyword
   */
  const KIND_FOREACH = "FOREACH";

  /**
   * Token is an ENDFOREACH keyword
   */
  const KIND_ENDFOREACH = "ENDFOREACH";

  /**
   * Token is a function name
   */
  const KIND_FUNCTION = "FUNCTION";

  /**
   * Token is a comma
   */
  const KIND_COMMA = "COMMA";

  /**
   * Token is an open brace
   */
  const KIND_OPEN = "OPEN";

  /**
   * Token is a close brace
   */
  const KIND_CLOSE = "CLOSE";

  /**
   * Token is a string literal
   */
  const KIND_STRING = "STRING";

  /**
   * Token is an integer number
   */
  const KIND_INT = "INT";

  /**
   * Token is a float number
   */
  const KIND_FLOAT = "FLOAT";
  
  /**
   * Token is a math on the price element
   */ 
  const KIND_MATH = "MATH";

  /**
   * Token is a spintax
   */ 
  const KIND_SPINTAX = "SPINTAX";
  
  /**
   * Token is a math on the price element
   */ 
  const KIND_OPERATION = "OPERATION";

  /**
   * Creates new instance of a token
   *
   * @param string $kind kind of a token
   * @param mixed $value value of a token
   */
  public function __construct($kind, $value = null)
  {
    $this->kind = $kind;
    $this->value = $value;
  }

  /**
   * Gets a kind of a token
   *
   * @return string
   */
  public function getKind()
  {
    return $this->kind;
  }

  /**
   * Gets a value of a token
   *
   * @return mixed
   */
  public function getValue()
  {
    return $this->value;
  }

  /**
   * String representation of a token
   *
   * @return string
   */
  public function __toString()
  {
    return '--> ' . $this->getKind() . (is_null($this->value) ? '' :  ': "' . $this->getValue() . '"');
  }
}