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