OqlHavingParser.class.php

Go to the documentation of this file.
00001 <?php
00002 /****************************************************************************
00003  *   Copyright (C) 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 
00012     final class OqlHavingParser extends OqlParser
00013     {
00014         const CLASS_NAME = 'HavingProjection';
00015         
00019         public static function create()
00020         {
00021             return new self;
00022         }
00023         
00027         protected function makeOqlObject()
00028         {
00029             return OqlHavingClause::create();
00030         }
00031         
00032         protected function handleState()
00033         {
00034             if ($this->state == self::INITIAL_STATE) {
00035                 if ($argument = $this->getLogicExpression()) {
00036                     $this->oqlObject->setExpression(
00037                         $this->makeQueryExpression(self::CLASS_NAME, $argument)
00038                     );
00039                 
00040                 } else
00041                     $this->error("expecting 'having' expression");
00042             }
00043             
00044             return self::FINAL_STATE;
00045         }
00046     }
00047 ?>