OqlToken.class.php

Go to the documentation of this file.
00001 <?php
00002 /****************************************************************************
00003  *   Copyright (C) 2008-2009 by Vladlen Y. Koshelev                         *
00004  *                                                                          *
00005  *   This program is free software; you can redistribute it and/or modify   *
00006  *   it under the terms of the GNU Lesser General Public License as         *
00007  *   published by the Free Software Foundation; either version 3 of the     *
00008  *   License, or (at your option) any later version.                        *
00009  *                                                                          *
00010  ****************************************************************************/
00011 
00015     final class OqlToken
00016     {
00017         const NEW_LINE              = 1;
00018         const STRING                = 2;
00019         const NUMBER                = 3;
00020         const BOOLEAN               = 4;
00021         const NULL                  = 5;
00022         const SUBSTITUTION          = 6;
00023         const KEYWORD               = 7;
00024         const AGGREGATE_FUNCTION    = 8;
00025         const IDENTIFIER            = 9;
00026         const PARENTHESES           = 10;
00027         const PUNCTUATION           = 11;
00028         const COMPARISON_OPERATOR   = 12;
00029         const ARITHMETIC_OPERATOR   = 13;
00030         
00031         private $value      = null;
00032         private $rawValue   = null;
00033         private $type       = null;
00034         private $line       = null;
00035         private $position   = null;
00036         
00040         public static function create()
00041         {
00042             return new self;
00043         }
00044         
00048         public static function make($value, $rawValue, $type, $line, $position)
00049         {
00050             return
00051                 self::create()->
00052                     setValue($value)->
00053                     setRawValue($rawValue)->
00054                     setType($type)->
00055                     setLine($line)->
00056                     setPosition($position);
00057         }
00058         
00062         public function setValue($value)
00063         {
00064             $this->value = $value;
00065             
00066             return $this;
00067         }
00068         
00069         public function getValue()
00070         {
00071             return $this->value;
00072         }
00073         
00077         public function setRawValue($rawValue)
00078         {
00079             $this->rawValue = $rawValue;
00080             
00081             return $this;
00082         }
00083         
00084         public function getRawValue()
00085         {
00086             return $this->rawValue;
00087         }
00088         
00092         public function setType($type)
00093         {
00094             $this->type = $type;
00095             
00096             return $this;
00097         }
00098         
00099         public function getType()
00100         {
00101             return $this->type;
00102         }
00103         
00107         public function setLine($line)
00108         {
00109             $this->line = $line;
00110             
00111             return $this;
00112         }
00113         
00114         public function getLine()
00115         {
00116             return $this->line;
00117         }
00118         
00122         public function setPosition($position)
00123         {
00124             $this->position = $position;
00125             
00126             return $this;
00127         }
00128         
00129         public function getPosition()
00130         {
00131             return $this->position;
00132         }
00133     }
00134 ?>