00001 <?php 00002 /*************************************************************************** 00003 * Copyright (C) 2006-2007 by Konstantin V. Arkhipov * 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 abstract class AggregateProjection extends BaseProjection 00016 { 00017 abstract public function getFunctionName(); 00018 00022 public function process(Criteria $criteria, JoinCapableQuery $query) 00023 { 00024 Assert::isNotNull($this->property); 00025 00026 return 00027 $query-> 00028 get( 00029 SQLFunction::create( 00030 $this->getFunctionName(), 00031 $criteria->getDao()->guessAtom($this->property, $query) 00032 )-> 00033 setAlias($this->alias) 00034 ); 00035 } 00036 } 00037 ?>