public function __construct(DBSearch $oFilter, $sStyle = 'list', $bAsynchronous = false, $aParams = array(), $oSet = null)
 {
     $this->m_oFilter = $oFilter->DeepClone();
     $this->m_aConditions = array();
     $this->m_sStyle = $sStyle;
     $this->m_bAsynchronous = $bAsynchronous;
     $this->m_aParams = $aParams;
     $this->m_oSet = $oSet;
 }
 /**
  * Create a new set based on a Search definition.
  * 
  * @param DBSearch $oFilter The search filter defining the objects which are part of the set (multiple columns/objects per row are supported)
  * @param hash $aOrderBy Array of '[<classalias>.]attcode' => bAscending
  * @param hash $aArgs Values to substitute for the search/query parameters (if any). Format: param_name => value
  * @param hash $aExtendedDataSpec
  * @param int $iLimitCount Maximum number of rows to load (i.e. equivalent to MySQL's LIMIT start, count)
  * @param int $iLimitStart Index of the first row to load (i.e. equivalent to MySQL's LIMIT start, count)
  */
 public function __construct(DBSearch $oFilter, $aOrderBy = array(), $aArgs = array(), $aExtendedDataSpec = null, $iLimitCount = 0, $iLimitStart = 0)
 {
     $this->m_oFilter = $oFilter->DeepClone();
     $this->m_aAddedIds = array();
     $this->m_aOrderBy = $aOrderBy;
     $this->m_aArgs = $aArgs;
     $this->m_aAttToLoad = null;
     $this->m_aExtendedDataSpec = $aExtendedDataSpec;
     $this->m_iLimitCount = $iLimitCount;
     $this->m_iLimitStart = $iLimitStart;
     $this->m_iNumTotalDBRows = null;
     // Total number of rows for the query without LIMIT. null if unknown yet
     $this->m_iNumLoadedDBRows = 0;
     // Total number of rows LOADED in $this->m_oSQLResult via a SQL query. 0 by default
     $this->m_bLoaded = false;
     // true when the filter has been used OR the set is built step by step (AddObject...)
     $this->m_aAddedObjects = array();
     // array of (row => array of (classalias) => object/null) storing the objects added "in memory"
     $this->m_iCurrRow = 0;
     $this->m_oSQLResult = null;
 }