# 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 ?>