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