00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00016 abstract class SQLBaseJoin implements SQLTableName, Aliased
00017 {
00018 protected $subject = null;
00019 protected $alias = null;
00020 protected $logic = null;
00021
00022 public function __construct($subject, LogicalObject $logic, $alias)
00023 {
00024 $this->subject = $subject;
00025 $this->alias = $alias;
00026 $this->logic = $logic;
00027 }
00028
00029 public function getAlias()
00030 {
00031 return $this->alias;
00032 }
00033
00034 public function getTable()
00035 {
00036 return $this->alias ? $this->alias : $this->subject;
00037 }
00038
00039 protected function baseToString(Dialect $dialect, $logic = null)
00040 {
00041 return
00042 $logic.'JOIN '
00043 .($this->subject instanceof DialectString
00044 ?
00045 $this->subject instanceof Query
00046 ? '('.$this->subject->toDialectString($dialect).')'
00047 : $this->subject->toDialectString($dialect)
00048 : $dialect->quoteTable($this->subject)
00049 )
00050 .($this->alias ? ' AS '.$dialect->quoteTable($this->alias) : null)
00051 .' ON '.$this->logic->toDialectString($dialect);
00052 }
00053 }
00054 ?>