TYPO3 API  SVNRelease
Join.php
Go to the documentation of this file.
00001 <?php
00002 /***************************************************************
00003 *  Copyright notice
00004 *
00005 *  (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
00006 *  All rights reserved
00007 *
00008 *  This class is a backport of the corresponding class of FLOW3.
00009 *  All credits go to the v5 team.
00010 *
00011 *  This script is part of the TYPO3 project. The TYPO3 project is
00012 *  free software; you can redistribute it and/or modify
00013 *  it under the terms of the GNU General Public License as published by
00014 *  the Free Software Foundation; either version 2 of the License, or
00015 *  (at your option) any later version.
00016 *
00017 *  The GNU General Public License can be found at
00018 *  http://www.gnu.org/copyleft/gpl.html.
00019 *
00020 *  This script is distributed in the hope that it will be useful,
00021 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023 *  GNU General Public License for more details.
00024 *
00025 *  This copyright notice MUST APPEAR in all copies of the script!
00026 ***************************************************************/
00027 
00028 /**
00029  * Performs a join between two node-tuple sources.
00030  *
00031  * @package Extbase
00032  * @subpackage Persistence\QOM
00033  * @version $Id: Join.php 1729 2009-11-25 21:37:20Z stucki $
00034  * @scope prototype
00035  */
00036 class Tx_Extbase_Persistence_QOM_Join implements Tx_Extbase_Persistence_QOM_JoinInterface {
00037 
00038     /**
00039      * @var Tx_Extbase_Persistence_QOM_SourceInterface
00040      */
00041     protected $left;
00042 
00043     /**
00044      * @var Tx_Extbase_Persistence_QOM_SourceInterface
00045      */
00046     protected $right;
00047 
00048     /**
00049      * @var integer
00050      */
00051     protected $joinType;
00052 
00053     /**
00054      * @var Tx_Extbase_Persistence_QOM_JoinConditionInterface
00055      */
00056     protected $joinCondition;
00057 
00058     /**
00059      * Constructs the Join instance
00060      *
00061      * @param Tx_Extbase_Persistence_QOM_SourceInterface $left the left node-tuple source; non-null
00062      * @param Tx_Extbase_Persistence_QOM_SourceInterface $right the right node-tuple source; non-null
00063      * @param string $joinType one of QueryObjectModelConstants.JCR_JOIN_TYPE_*
00064      * @param Tx_Extbase_Persistence_QOM_JoinConditionInterface $join Condition the join condition; non-null
00065      */
00066     public function __construct(Tx_Extbase_Persistence_QOM_SourceInterface $left, Tx_Extbase_Persistence_QOM_SourceInterface $right, $joinType, Tx_Extbase_Persistence_QOM_JoinConditionInterface $joinCondition) {
00067         $this->left = $left;
00068         $this->right = $right;
00069         $this->joinType = $joinType;
00070         $this->joinCondition = $joinCondition;
00071     }
00072 
00073     /**
00074      * Gets the left node-tuple source.
00075      *
00076      * @return Tx_Extbase_Persistence_QOM_SourceInterface the left source; non-null
00077      */
00078     public function getLeft() {
00079         return $this->left;
00080     }
00081 
00082     /**
00083      * Gets the right node-tuple source.
00084      *
00085      * @return Tx_Extbase_Persistence_QOM_SourceInterface the right source; non-null
00086      */
00087     public function getRight() {
00088         return $this->right;
00089     }
00090 
00091     /**
00092      * Gets the join type.
00093      *
00094      * @return string one of QueryObjectModelConstants.JCR_JOIN_TYPE_*
00095      */
00096     public function getJoinType() {
00097         return $this->joinType;
00098     }
00099 
00100     /**
00101      * Gets the join condition.
00102      *
00103      * @return JoinCondition the join condition; non-null
00104      */
00105     public function getJoinCondition() {
00106         return $this->joinCondition;
00107     }
00108 
00109 }
00110 
00111 ?>