00001 <?php 00002 /**************************************************************************** 00003 * Copyright (C) 2005-2007 by Anton E. Lebedevich, 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 00016 final class GroupBy extends FieldTable implements MappableObject 00017 { 00021 public static function create($field) 00022 { 00023 return new self($field); 00024 } 00025 00029 public function toMapped(ProtoDAO $dao, JoinCapableQuery $query) 00030 { 00031 return self::create($dao->guessAtom($this->field, $query)); 00032 } 00033 00034 public function toDialectString(Dialect $dialect) 00035 { 00036 if ( 00037 $this->field instanceof SelectQuery 00038 || $this->field instanceof LogicalObject 00039 ) 00040 return '('.$dialect->fieldToString($this->field).')'; 00041 else 00042 return parent::toDialectString($dialect); 00043 } 00044 } 00045 ?>