OqlPrefixMinusExpression.class.php

Go to the documentation of this file.
00001 <?php
00002 /****************************************************************************
00003  *   Copyright (C) 2008 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 OqlPrefixMinusExpression extends OqlQueryExpression
00016     {
00017         const CLASS_NAME = 'PrefixUnaryExpression';
00018         
00019         public function __construct(OqlQueryParameter $subject)
00020         {
00021             $this->
00022                 setClassName(self::CLASS_NAME)->
00023                 addParameter(
00024                     OqlQueryParameter::create()->
00025                         setValue(PrefixUnaryExpression::MINUS)
00026                 )->
00027                 addParameter($subject);
00028         }
00029         
00030         public function evaluate($values)
00031         {
00032             $value = $this->getParameter(1)->evaluate($values);
00033             
00034             if (is_numeric($value))
00035                 return -$value;
00036             else
00037                 return parent::evaluate($values);
00038         }
00039     }
00040 ?>