/** * Associated with the metamodel -> MakeQuery/MakeQuerySingleTable * * @copyright Copyright (C) 2010-2012 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 */ class QueryBuilderContext { protected $m_oRootFilter; protected $m_aClassAliases; protected $m_aTableAliases; protected $m_aModifierProperties; public $m_oQBExpressions; public function __construct($oFilter, $aModifierProperties, $aGroupByExpr = null) { $this->m_oRootFilter = $oFilter; $this->m_oQBExpressions = new QueryBuilderExpressions($oFilter, $aGroupByExpr); $this->m_aClassAliases = $oFilter->GetJoinedClasses(); $this->m_aTableAliases = array(); $this->m_aModifierProperties = $aModifierProperties; } public function GetRootFilter() { return $this->m_oRootFilter; } public function GenerateTableAlias($sNewName, $sRealName) { return MetaModel::GenerateUniqueAlias($this->m_aTableAliases, $sNewName, $sRealName); } public function GenerateClassAlias($sNewName, $sRealName) { return MetaModel::GenerateUniqueAlias($this->m_aClassAliases, $sNewName, $sRealName); } public function GetModifierProperties($sPluginClass) { if (array_key_exists($sPluginClass, $this->m_aModifierProperties)) { return $this->m_aModifierProperties[$sPluginClass]; } else { return array(); } } } ?>