diff options
Diffstat (limited to 'framework/DataAccess/SQLMap/Statements')
13 files changed, 0 insertions, 1601 deletions
diff --git a/framework/DataAccess/SQLMap/Statements/IMappedStatement.php b/framework/DataAccess/SQLMap/Statements/IMappedStatement.php deleted file mode 100644 index 6a4d76db..00000000 --- a/framework/DataAccess/SQLMap/Statements/IMappedStatement.php +++ /dev/null @@ -1,71 +0,0 @@ -<?php
 -
 -interface IMappedStatement
 -{
 -	/**
 -	 * @return string Name used to identify the MappedStatement amongst the others.
 -	 */
 -	public function getID();
 -
 -	/**
 -	 * @return TSqlMapStatement The SQL statment used by this TMappedStatement.
 -	 */
 -	public function getStatement();
 -
 -	/**
 -	 * @return TSqlMap The TSqlMap used by this TMappedStatement
 -	 */
 -	public function getSqlMap();
 -
 -	/**
 -	 * Executes the SQL and retuns all rows selected in a map that is keyed on 
 -	 * the property named in the <tt>$keyProperty</tt> parameter.  The value at 
 -	 * each key will be the value of the property specified  in the 
 -	 * <tt>$valueProperty</tt> parameter.  If <tt>$valueProperty</tt> is 
 -	 * <tt>null</tt>, the entire result object will be entered.
 -	 * @param IDbConnection database connection to execute the query
 -	 * @param mixed The object used to set the parameters in the SQL.
 -	 * @param string The property of the result object to be used as the key.
 -	 * @param string The property of the result object to be used as the value (or null)
 -	 * @return TMap A map of object containing the rows keyed by <tt>$keyProperty</tt>.
 -	 */
 -	public function executeQueryForMap($connection, $parameter, 
 -								$keyProperty, $valueProperty=null);
 -
 -
 -	/**
 -	 * Execute an update statement. Also used for delete statement. Return the 
 -	 * number of row effected.
 -	 * @param IDbConnection database connection to execute the query
 -	 * @param mixed The object used to set the parameters in the SQL.
 -	 * @return integer The number of row effected.
 -	 */
 -	public function executeUpdate($connection, $parameter);
 -
 -
 -	/**
 -	 * Executes the SQL and retuns a subset of the rows selected.
 -	 * @param IDbConnection database connection to execute the query
 -	 * @param mixed The object used to set the parameters in the SQL.
 -	 * @param TList A list to populate the result with.
 -	 * @param integer The number of rows to skip over.
 -	 * @param integer The maximum number of rows to return.
 -	 * @return TList A TList of result objects.
 -	 */
 -	public function executeQueryForList($connection,
 -								$parameter, $result, $skip=-1, $max=-1);
 -
 -
 -	/**
 -	 * Executes an SQL statement that returns a single row as an object 
 -	 * of the type of the <tt>$result</tt> passed in as a parameter.
 -	 * @param IDbConnection database connection to execute the query
 -	 * @param mixed The object used to set the parameters in the SQL.
 -	 * @param object The result object.
 -	 * @return object result.
 -	 */
 -	public function executeQueryForObject($connection,
 -								$parameter, $result);
 -}
 -
 -?>
\ No newline at end of file diff --git a/framework/DataAccess/SQLMap/Statements/TCachingStatement.php b/framework/DataAccess/SQLMap/Statements/TCachingStatement.php deleted file mode 100644 index 085fa9e6..00000000 --- a/framework/DataAccess/SQLMap/Statements/TCachingStatement.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php
 -
 -/**
 - * 
 - *
 - * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
 - * @version $Id$
 - * @package System.Web.UI.WebControls
 - * @since 3.0
 - */
 -class TCachingStatement implements IMappedStatement
 -{
 -	private $_mappedStatement;
 -
 -	public function __construct(TMappedStatement $statement)
 -	{
 -		$this->_mappedStatement = $statement;
 -	}
 -
 -	public function getID()
 -	{
 -		return $this->_mappedStatement->getID();
 -	}
 -
 -	public function getStatement()
 -	{
 -		return $this->_mappedStatement->getStatement();
 -	}
 -
 -	public function getSqlMap()
 -	{
 -		return $this->_mappedStatement->getSqlMap();
 -	}
 -
 -	public function executeQueryForMap($connection, $parameter, 
 -								$keyProperty, $valueProperty=null, $delegate=null)
 -	{
 -		$sql = $this->createCommand($connection, $parameter);
 -		$key = $this->getCacheKey(array($sql, $keyProperty, $valueProperty));
 -		$map = $this->getStatement()->getCache()->get($key);
 -		if(is_null($map))
 -		{
 -			$map = $this->_mappedStatement->runQueryForMap(
 -							$connection, $parameter, $sql, $keyProperty, $valueProperty, $delegate);
 -			$this->getStatement()->getCache()->set($key, $map);
 -		}
 -		return $map;
 -	}
 -
 -	public function executeUpdate($connection, $parameter)
 -	{
 -		return $this->_mappedStatement->executeUpdate($connection, $parameter);
 -	}
 -
 -	public function executeInsert($connection, $parameter)
 -	{
 -		return $this->executeInsert($connection, $parameter);
 -	}
 -
 -	public function executeQueryForList($connection, $parameter, 
 -								$result, $skip=-1, $max=-1, $delegate=null)
 -	{
 -		$sql = $this->createCommand($connection, $parameter);
 -		$key = $this->getCacheKey(array($sql, $skip, $max));
 -		$list = $this->getStatement()->getCache()->get($key);
 -		if(is_null($list))
 -		{
 -			$list = $this->_mappedStatement->runQueryForList(
 -							$connection, $parameter, $sql, $result, $skip, $max, $delegate);
 -			$this->getStatement()->getCache()->set($key, $list);
 -		}
 -		return $list;
 -	}
 -
 -	public function executeQueryForObject($connection, $parameter, $result)
 -	{
 -		$sql = $this->createCommand($connection, $parameter);
 -		$key = $this->getCacheKey($sql);
 -		$object = $this->getStatement()->getCache()->get($key);
 -		if(is_null($object))
 -		{
 -			$object = $this->_mappedStatement->runQueryForObject(
 -							$connection, $sql, $result);
 -			$this->getStatement()->getCache()->set($key, $object);
 -		}
 -		return $object;
 -	}
 -	
 -	protected function getCacheKey($object)
 -	{
 -		$cacheKey = new TSqlMapCacheKey($object);
 -		return $cacheKey->getHash();
 -	}
 -
 -	protected function createCommand($connection, $parameter)
 -	{
 -		return $this->_mappedStatement->getCommand()->create(
 -					$connection, $this->getStatement(), $parameter);
 -	}
 -}
 -
 -?>
\ No newline at end of file diff --git a/framework/DataAccess/SQLMap/Statements/TDeleteMappedStatement.php b/framework/DataAccess/SQLMap/Statements/TDeleteMappedStatement.php deleted file mode 100644 index 9a1c8fae..00000000 --- a/framework/DataAccess/SQLMap/Statements/TDeleteMappedStatement.php +++ /dev/null @@ -1,7 +0,0 @@ -<?php
 -
 -class TDeleteMappedStatement extends TUpdateMappedStatement
 -{
 -}
 -
 -?>
\ No newline at end of file diff --git a/framework/DataAccess/SQLMap/Statements/TInsertMappedStatement.php b/framework/DataAccess/SQLMap/Statements/TInsertMappedStatement.php deleted file mode 100644 index 51731a5c..00000000 --- a/framework/DataAccess/SQLMap/Statements/TInsertMappedStatement.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php
 -
 -class TInsertMappedStatement extends TMappedStatement
 -{
 -	public function executeQueryForMap($connection, $parameter, 
 -								$keyProperty, $valueProperty=null)
 -	{
 -		throw new TSqlMapExecutionException(
 -				'sqlmap_cannot_execute_query_for_map', get_class($this), $this->getID());
 -	}
 -
 -	public function executeUpdate($connection, $parameter)
 -	{
 -		throw new TSqlMapExecutionException(
 -				'sqlmap_cannot_execute_update', get_class($this), $this->getID());
 -	}
 -
 -	public function executeQueryForList($connection, $parameter, $result,
 -										$skip=-1, $max=-1)
 -	{
 -		throw new TSqlMapExecutionException(
 -				'sqlmap_cannot_execute_query_for_list', get_class($this), $this->getID());
 -	}
 -
 -	public function executeQueryForObject($connection, $parameter, $result)
 -	{
 -		throw new TSqlMapExecutionException(
 -				'sqlmap_cannot_execute_query_for_object', get_class($this), $this->getID());
 -	}
 -}
 -
 -?>
\ No newline at end of file diff --git a/framework/DataAccess/SQLMap/Statements/TMappedStatement.php b/framework/DataAccess/SQLMap/Statements/TMappedStatement.php deleted file mode 100644 index aa715946..00000000 --- a/framework/DataAccess/SQLMap/Statements/TMappedStatement.php +++ /dev/null @@ -1,1158 +0,0 @@ -<?php
 -/**
 - * TMappedStatement and related classes.
 - *
 - * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
 - * @link http://www.pradosoft.com/
 - * @copyright Copyright © 2005 PradoSoft
 - * @license http://www.pradosoft.com/license/
 - * @version $Id$
 - * @package System.DataAccess.SQLMap.Statements
 - */
 -
 -/**
 - * TMappedStatement class executes SQL mapped statements. Mapped Statements can 
 - * hold any SQL statement and use Parameter Maps and Result Maps for input and output.
 - *
 - * This class is usualy instantiated during SQLMap configuration by TSqlDomBuilder.
 - *
 - * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
 - * @version $Id$
 - * @package System.DataAccess.SQLMap.Statements
 - * @since 3.0
 - */
 -class TMappedStatement extends TComponent implements IMappedStatement
 -{
 -	/**
 -	 * @var TSqlMapStatement current SQL statement.
 -	 */
 -	private $_statement;
 -
 -	/**
 -	 * @var TPreparedCommand SQL command prepareer
 -	 */
 -	private $_command;
 -
 -	/**
 -	 * @var TSqlMapper sqlmap used by this mapper.
 -	 */
 -	private $_sqlMap;
 -
 -	/**
 -	 * @var TPostSelectBinding[] post select statement queue.
 -	 */
 -	private $_selectQueque=array();
 -
 -	/**
 -	 * @var boolean true when data is mapped to a particular row.
 -	 */
 -	private $_IsRowDataFound = false;
 -
 -	/**
 -	 * @var TSQLMapObjectCollectionTree group by object collection tree
 -	 */
 -	private $_groupBy;
 -
 -	/**
 -	 * @var Post select is to query for list.
 -	 */
 -	const QUERY_FOR_LIST = 0;
 -
 -	/**
 -	 * @var Post select is to query for list.
 -	 */
 -	const QUERY_FOR_ARRAY = 1;
 -	
 -	/**
 -	 * @var Post select is to query for object.
 -	 */
 -	const QUERY_FOR_OBJECT = 2;
 -	
 -	/**
 -	 * @return string Name used to identify the TMappedStatement amongst the others.
 -	 * This the name of the SQL statement by default.
 -	 */
 -	public function getID()
 -	{
 -		return $this->_statement->ID;
 -	}
 -
 -	/**
 -	 * @return TSqlMapStatement The SQL statment used by this MappedStatement
 -	 */
 -	public function getStatement()
 -	{
 -		return $this->_statement;
 -	}
 -
 -	/**
 -	 * @return TSqlMapper The SqlMap used by this MappedStatement
 -	 */
 -	public function getSqlMap()
 -	{
 -		return $this->_sqlMap;
 -	}
 -
 -	/**
 -	 * @return TPreparedCommand command to prepare SQL statements.
 -	 */
 -	public function getCommand()
 -	{
 -		return $this->_command;
 -	}
 -
 -	/**
 -	 * Empty the group by results cache.
 -	 */
 -	protected function initialGroupByResults()
 -	{
 -		$this->_groupBy = new TSQLMapObjectCollectionTree();
 -	}
 -
 -	/**
 -	 * Creates a new mapped statement.
 -	 * @param TSqlMapper an sqlmap.
 -	 * @param TSqlMapStatement An SQL statement.
 -	 */
 -	public function __construct(TSqlMapper $sqlMap, TSqlMapStatement $statement)
 -	{
 -		$this->_sqlMap = $sqlMap;
 -		$this->_statement = $statement;
 -		$this->_command = new TPreparedCommand();
 -		$this->initialGroupByResults();
 -	}
 -
 -	/**
 -	 * Execute SQL Query.
 -	 * @param IDbConnection database connection
 -	 * @param array SQL statement and parameters.
 -	 * @return mixed record set if applicable.
 -	 * @throws TSqlMapExecutionException if execution error or false record set.
 -	 * @throws TSqlMapQueryExecutionException if any execution error
 -	 */
 -	protected function executeSQLQuery($connection, $sql)
 -	{
 -		try
 -		{
 -			if(!($recordSet = $connection->execute($sql['sql'],$sql['parameters'])))
 -			{
 -				throw new TSqlMapExecutionException(
 -					'sqlmap_execution_error_no_record', $this->getID(), 
 -					$connection->ErrorMsg());
 -			}
 -			return $recordSet;
 -		}
 -		catch (Exception $e)
 -		{
 -			throw new TSqlMapQueryExecutionException($this->getStatement(), $e);
 -		}
 -	}
 -
 -	/**
 -	 * Execute SQL Query with limits.
 -	 * @param IDbConnection database connection
 -	 * @param array SQL statement and parameters.
 -	 * @return mixed record set if applicable.
 -	 * @throws TSqlMapExecutionException if execution error or false record set.
 -	 * @throws TSqlMapQueryExecutionException if any execution error
 -	 */
 -	protected function executeSQLQueryLimit($connection, $sql, $max, $skip)
 -	{
 -		try
 -		{
 -			$recordSet = $connection->selectLimit($sql['sql'],$max,$skip,$sql['parameters']);
 -			if(!$recordSet)
 -			{
 -				throw new TSqlMapExecutionException(
 -							'sqlmap_execution_error_query_for_list', 
 -							$connection->ErrorMsg());
 -			}
 -			return $recordSet;
 -		}
 -		catch (Exception $e)
 -		{
 -			throw new TSqlMapQueryExecutionException($this->getStatement(), $e);
 -		}
 -	}
 -
 -	/**
 -	 * Executes the SQL and retuns a List of result objects.
 -	 * @param IDbConnection database connection
 -	 * @param mixed The object used to set the parameters in the SQL.
 -	 * @param object result collection object.
 -	 * @param integer The number of rows to skip over.
 -	 * @param integer The maximum number of rows to return.
 -	 * @return array a list of result objects
 -	 * @param callback row delegate handler
 -	 * @see executeQueryForList()
 -	 */
 -	public function executeQueryForList($connection, $parameter, $result, $skip=-1, $max=-1, $delegate=null)
 -	{
 -		$sql = $this->_command->create($connection, $this->_statement, $parameter);
 -		return $this->runQueryForList($connection, $parameter, $sql, $result, $skip, $max, $delegate);
 -	}
 -
 -	/**
 -	 * Executes the SQL and retuns a List of result objects.
 -	 *
 -	 * This method should only be called by internal developers, consider using
 -	 * <tt>executeQueryForList()</tt> first.
 -	 *
 -	 * @param IDbConnection database connection
 -	 * @param mixed The object used to set the parameters in the SQL.
 -	 * @param array SQL string and subsititution parameters.
 -	 * @param object result collection object.
 -	 * @param integer The number of rows to skip over.
 -	 * @param integer The maximum number of rows to return.
 -	 * @param callback row delegate handler
 -	 * @return array a list of result objects
 -	 * @see executeQueryForList()
 -	 */
 -	public function runQueryForList($connection, $parameter, $sql, $result, $skip=-1, $max=-1, $delegate=null)
 -	{
 -		$list = $result instanceof ArrayAccess ? $result : 
 -							$this->_statement->createInstanceOfListClass();
 -		$recordSet = $this->executeSQLQueryLimit($connection, $sql, $max, $skip);
 -		if(!is_null($delegate))
 -		{
 -			while($row = $recordSet->fetchRow())
 -			{
 -				$obj = $this->applyResultMap($row);
 -				$param = new TResultSetListItemParameter($obj, $parameter, $list);
 -				$this->raiseRowDelegate($delegate, $param);
 -			}			
 -		}
 -		else
 -		{
 -			while($row = $recordSet->fetchRow())
 -				$list[] = $this->applyResultMap($row);
 -		}
 -
 -		if(!$this->_groupBy->isEmpty())
 -		{
 -			$list = $this->_groupBy->collect();
 -			$this->initialGroupByResults();
 -		}	
 -
 -		$this->executePostSelect($connection);
 -		$this->onExecuteQuery($sql);
 -
 -		return $list;
 -	}
 -
 -	/**
 -	 * Executes the SQL and retuns all rows selected in a map that is keyed on 
 -	 * the property named in the keyProperty parameter.  The value at each key 
 -	 * will be the value of the property specified in the valueProperty parameter.  
 -	 * If valueProperty is null, the entire result object will be entered.
 -	 * @param IDbConnection database connection
 -	 * @param mixed The object used to set the parameters in the SQL. 
 -	 * @param string The property of the result object to be used as the key.
 -	 * @param string The property of the result object to be used as the value (or null).
 -	 * @param callback row delegate handler
 -	 * @return array An array of object containing the rows keyed by keyProperty.
 -	 */
 -	public function executeQueryForMap($connection, $parameter, $keyProperty, $valueProperty=null, $delegate=null)
 -	{
 -		$sql = $this->_command->create($connection, $this->_statement, $parameter);
 -		return $this->runQueryForMap($connection, $parameter, $sql, $keyProperty, $valueProperty, $delegate);
 -	}
 -
 -	/**
 -	 * Executes the SQL and retuns all rows selected in a map that is keyed on 
 -	 * the property named in the keyProperty parameter.  The value at each key 
 -	 * will be the value of the property specified in the valueProperty parameter.  
 -	 * If valueProperty is null, the entire result object will be entered.
 -	 *
 -	 * This method should only be called by internal developers, consider using
 -	 * <tt>executeQueryForMap()</tt> first.
 -	 *
 -	 * @param IDbConnection database connection
 -	 * @param mixed The object used to set the parameters in the SQL.
 -	 * @param array SQL string and subsititution parameters.
 -	 * @param string The property of the result object to be used as the key.
 -	 * @param string The property of the result object to be used as the value (or null).
 -	 * @param callback row delegate, a callback function
 -	 * @return array An array of object containing the rows keyed by keyProperty.
 -	 * @see executeQueryForMap()
 -	 */
 -	public function runQueryForMap($connection, $parameter, $sql, $keyProperty, $valueProperty=null, $delegate=null)
 -	{
 -		$map = array();
 -		$recordSet = $this->executeSQLQuery($connection, $sql);
 -		if(!is_null($delegate))
 -		{
 -			while($row = $recordSet->fetchRow())
 -			{
 -				$obj = $this->applyResultMap($row);
 -				$key = TPropertyAccess::get($obj, $keyProperty);
 -				$value = is_null($valueProperty) ? $obj : 
 -							TPropertyAccess::get($obj, $valueProperty);
 -				$param = new TResultSetMapItemParameter($key, $value, $parameter, $map);
 -				$this->raiseRowDelegate($delegate, $param);
 -			}
 -		}
 -		else
 -		{
 -			while($row = $recordSet->fetchRow())
 -			{
 -				$obj = $this->applyResultMap($row);
 -				$key = TPropertyAccess::get($obj, $keyProperty);
 -				$map[$key] = is_null($valueProperty) ? $obj : 
 -								TPropertyAccess::get($obj, $valueProperty);
 -			}
 -		}
 -		$this->onExecuteQuery($sql);
 -		return $map;
 -	}
 -
 -	/**
 -	 * Raises delegate handler.
 -	 * This method is invoked for each new list item. It is the responsibility
 -	 * of the handler to add the item to the list. 
 -	 * @param object event parameter
 -	 */
 -	protected function raiseRowDelegate($handler, $param)
 -	{
 -		if(is_string($handler))
 -		{
 -			call_user_func($handler,$this,$param);
 -		}
 -		else if(is_callable($handler,true))
 -		{
 -			// an array: 0 - object, 1 - method name/path
 -			list($object,$method)=$handler;
 -			if(is_string($object))	// static method call
 -				call_user_func($handler,$this,$param);
 -			else
 -			{
 -				if(($pos=strrpos($method,'.'))!==false)
 -				{
 -					$object=$this->getSubProperty(substr($method,0,$pos));
 -					$method=substr($method,$pos+1);
 -				}
 -				$object->$method($this,$param);
 -			}
 -		}
 -		else
 -			throw new TInvalidDataValueException('sqlmap_invalid_delegate', $this->getID(), $handler);
 -	}
 -
 -	/**
 -	 * Executes an SQL statement that returns a single row as an object of the 
 -	 * type of the <tt>$result</tt> passed in as a parameter.	 
 -	 * @param IDbConnection database connection
 -	 * @param mixed The parameter data (object, arrary, primitive) used to set the parameters in the SQL
 -	 * @param mixed The result object.
 -	 * @return ${return}
 -	 */
 -	public function executeQueryForObject($connection, $parameter, $result)
 -	{
 -		$sql = $this->_command->create($connection, $this->_statement, $parameter);
 -		return $this->runQueryForObject($connection, $sql, $result);
 -	}
 -
 -	/**
 -	 * Executes an SQL statement that returns a single row as an object of the 
 -	 * type of the <tt>$result</tt> passed in as a parameter.
 -	 *
 -	 * This method should only be called by internal developers, consider using
 -	 * <tt>executeQueryForObject()</tt> first.
 -	 *
 -	 * @param IDbConnection database connection
 -	 * @param array SQL string and subsititution parameters.
 -	 * @param object The result object.
 -	 * @return object the object.
 -	 * @see executeQueryForObject()
 -	 */
 -	public function runQueryForObject($connection, $sql, &$result)
 -	{
 -		$recordSet = $this->executeSQLQuery($connection, $sql);
 -		
 -		$object = null;
 -		
 -		while($row = $recordSet->fetchRow())
 -			$object = $this->applyResultMap($row, $result);	
 -
 -		if(!$this->_groupBy->isEmpty())
 -		{
 -			$list = $this->_groupBy->collect();
 -			$this->initialGroupByResults();
 -			$object = $list[0];
 -		}	
 -
 -		$this->executePostSelect($connection);
 -		$this->onExecuteQuery($sql);
 -		
 -		return $object;
 -	}
 -
 -	/**
 -	 * Execute an insert statement. Fill the parameter object with the ouput 
 -	 * parameters if any, also could return the insert generated key.
 -	 * @param IDbConnection database connection
 -	 * @param mixed The parameter object used to fill the statement.
 -	 * @return string the insert generated key.
 -	 */
 -	public function executeInsert($connection, $parameter)
 -	{
 -		$generatedKey = $this->getPreGeneratedSelectKey($connection, $parameter);
 -
 -		$sql = $this->_command->create($connection, $this->_statement, $parameter);
 -
 -		$result = $this->executeSQLQuery($connection, $sql);
 -
 -		if(is_null($generatedKey))
 -			$generatedKey = $this->getPostGeneratedSelectKey($connection, $parameter);
 -
 -		$this->executePostSelect($connection);
 -		$this->onExecuteQuery($sql);
 -		return $generatedKey;
 -	}
 -
 -	/**
 -	 * Gets the insert generated ID before executing an insert statement.
 -	 * @param IDbConnection database connection
 -	 * @param mixed insert statement parameter.
 -	 * @return string new insert ID if pre-select key statement was executed, null otherwise.
 -	 */
 -	protected function getPreGeneratedSelectKey($connection, $parameter)
 -	{
 -		if($this->_statement instanceof TSqlMapInsert)
 -		{
 -			$selectKey = $this->_statement->getSelectKey();
 -			if(!is_null($selectKey) && !$selectKey->getIsAfter())
 -				return $this->executeSelectKey($connection, $parameter, $selectKey);
 -		}
 -	}
 -
 -	/**
 -	 * Gets the inserted row ID after executing an insert statement.
 -	 * @param IDbConnection database connection
 -	 * @param mixed insert statement parameter.
 -	 * @return string last insert ID, null otherwise.
 -	 */
 -	protected function getPostGeneratedSelectKey($connection, $parameter)
 -	{
 -		if($this->_statement instanceof TSqlMapInsert)
 -		{
 -			$selectKey = $this->_statement->getSelectKey();
 -			if(!is_null($selectKey) && $selectKey->getIsAfter())
 -				return $this->executeSelectKey($connection, $parameter, $selectKey);
 -		}
 -	}
 -	
 -	/**
 -	 * Execute the select key statement, used to obtain last insert ID.
 -	 * @param IDbConnection database connection
 -	 * @param mixed insert statement parameter
 -	 * @param TSqlMapSelectKey select key statement
 -	 * @return string last insert ID.
 -	 */
 -	protected function executeSelectKey($connection, $parameter, $selectKey)
 -	{
 -		$mappedStatement = $this->sqlMap->getMappedStatement($selectKey->getID());
 -		$generatedKey = $mappedStatement->executeQueryForObject(
 -									$connection, $parameter, null);
 -		if(strlen($prop = $selectKey->getProperty()) > 0)
 -				TPropertyAccess::set($parameter, $prop, $generatedKey);
 -		return $generatedKey;
 -	}
 -
 -	/**
 -	 * Execute an update statement. Also used for delete statement. 
 -	 * Return the number of rows effected.
 -	 * @param IDbConnection database connection
 -	 * @param mixed The object used to set the parameters in the SQL.
 -	 * @return integer The number of rows effected.
 -	 */
 -	public function executeUpdate($connection, $parameter)
 -	{
 -		$sql = $this->_command->create($connection, $this->_statement, $parameter);
 -		$this->executeSQLQuery($connection, $sql);
 -		$this->executePostSelect($connection);
 -		$this->onExecuteQuery($sql);
 -		return $connection->Affected_Rows();
 -	}
 -	
 -	/**
 -	 * Process 'select' result properties
 -	 * @param IDbConnection database connection
 -	 */
 -	protected function executePostSelect($connection)
 -	{
 -
 -		while(count($this->_selectQueque))
 -		{
 -			$postSelect = array_shift($this->_selectQueque);
 -			$method = $postSelect->getMethod();
 -			$statement = $postSelect->getStatement();
 -			$property = $postSelect->getResultProperty()->getProperty();
 -			$keys = $postSelect->getKeys();
 -			$resultObject = $postSelect->getResultObject();
 -
 -			if($method == self::QUERY_FOR_LIST || $method == self::QUERY_FOR_ARRAY)
 -			{
 -				$values = $statement->executeQueryForList($connection, $keys, null);
 -				
 -				if($method == self::QUERY_FOR_ARRAY) 
 -					$values = $values->toArray();
 -				TPropertyAccess::set($resultObject, $property, $values);
 -			}
 -			else if($method == self::QUERY_FOR_OBJECT)
 -			{
 -				$value = $statement->executeQueryForObject($connection, $keys, null);
 -				TPropertyAccess::set($resultObject, $property, $value);
 -			}
 -		}
 -	}
 -	
 -	/**
 -	 * Raise the execute query event.
 -	 * @param array prepared SQL statement and subsititution parameters
 -	 */
 -	public function onExecuteQuery($sql)
 -	{
 -		$this->raiseEvent('OnExecuteQuery', $this, $sql);
 -	}
 -
 -	/**
 -	 * Apply result mapping.
 -	 * @param array a result set row retrieved from the database
 -	 * @param object the result object, will create if necessary.
 -	 * @return object the result filled with data, null if not filled.
 -	 */
 -	protected function applyResultMap($row, &$resultObject=null)
 -	{
 -		if($row === false) return null;
 -
 -		$resultMapName = $this->_statement->getResultMap();
 -		$resultClass = $this->_statement->getResultClass();
 -
 -		if($this->_sqlMap->getResultMaps()->contains($resultMapName))
 -			return $this->fillResultMap($resultMapName, $row, null, $resultObject);
 -		else if(strlen($resultClass) > 0)
 -			return $this->fillResultClass($resultClass, $row, $resultObject);
 -		else
 -			return $this->fillDefaultResultMap(null, $row, $resultObject);
 -	}
 -
 -	/**
 -	 * Fill the result using ResultClass, will creates new result object if required.
 -	 * @param string result object class name
 -	 * @param array a result set row retrieved from the database
 -	 * @param object the result object, will create if necessary.
 -	 * @return object result object filled with data
 -	 */
 -	protected function fillResultClass($resultClass, $row, $resultObject)
 -	{
 -		if(is_null($resultObject))
 -			$resultObject = $this->_statement->createInstanceOfResultClass($row);
 -
 -		if($resultObject instanceOf ArrayAccess)
 -			return $this->fillResultArrayList($row, $resultObject);
 -		else if(is_object($resultObject))
 -			return $this->fillResultObjectProperty($row, $resultObject);
 -		else
 -			return $this->fillDefaultResultMap(null, $row, $resultObject);
 -	}
 -
 -	/**
 -	 * Apply the result to a TList or an array.
 -	 * @param array a result set row retrieved from the database
 -	 * @param object result object, array or list
 -	 * @return object result filled with data.
 -	 */
 -	protected function fillResultArrayList($row, $resultObject)
 -	{
 -		if($resultObject instanceof TList)
 -			foreach($row as $v)
 -				$resultObject[] = $v;
 -		else
 -			foreach($row as $k => $v)
 -				$resultObject[$k] = $v;
 -		return $resultObject;
 -	}
 -
 -	/**
 -	 * Apply the result to an object.
 -	 * @param array a result set row retrieved from the database
 -	 * @param object result object, array or list
 -	 * @return object result filled with data.
 -	 */
 -	protected function fillResultObjectProperty($row, $resultObject)
 -	{
 -		$index = 0;
 -		foreach($row as $k=>$v)
 -		{
 -			$property = new TResultProperty;
 -			$property->initialize($this->_sqlMap);
 -			if(is_string($k) && strlen($k) > 0)
 -				$property->setColumn($k);
 -			$property->setColumnIndex(++$index);
 -			$type = gettype(TPropertyAccess::get($resultObject,$k));
 -			$property->setType($type);
 -			$value = $property->getDatabaseValue($row);	
 -			TPropertyAccess::set($resultObject, $k,$value);
 -		}
 -		return $resultObject;
 -	}
 -
 -	/**
 -	 * Fills the result object according to result mappings.
 -	 * @param string result map name.
 -	 * @param array a result set row retrieved from the database
 -	 * @param object result object to fill, will create new instances if required.
 -	 * @return object result object filled with data.
 -	 */
 -	protected function fillResultMap($resultMapName, $row, $parentGroup=null, &$resultObject=null)
 -	{
 -		$resultMap = $this->_sqlMap->getResultMap($resultMapName);
 -		$resultMap = $resultMap->resolveSubMap($row);
 -
 -		if(is_null($resultObject))
 -			$resultObject = $resultMap->createInstanceOfResult();
 -		if(is_object($resultObject))
 -		{
 -			if(strlen($resultMap->getGroupBy()) > 0)
 -				return $this->addResultMapGroupBy($resultMap, $row, $parentGroup, $resultObject);
 -			else
 -				foreach($resultMap->getColumns() as $property)
 -					$this->setObjectProperty($resultMap, $property, $row, $resultObject);
 -		}
 -		else
 -		{
 -			$resultObject = $this->fillDefaultResultMap($resultMap, $row, $resultObject);
 -		}
 -		return $resultObject;
 -	}
 -
 -	/**
 -	 * ResultMap with GroupBy property. Save object collection graph in a tree
 -	 * and collect the result later.
 -	 * @param TResultMap result mapping details.
 -	 * @param array a result set row retrieved from the database
 -	 * @param object the result object
 -	 * @return object result object.
 -	 */
 -	protected function addResultMapGroupBy($resultMap, $row, $parent, &$resultObject)
 -	{
 -		$group = $this->getResultMapGroupKey($resultMap, $row);
 -
 -		if(empty($parent))
 -		{
 -			$rootObject = array('object'=>$resultObject, 'property' => null); 
 -			$this->_groupBy->add(null, $group, $rootObject);
 -		}
 -				
 -		foreach($resultMap->getColumns() as $property)
 -		{
 -			//set properties.
 -			$this->setObjectProperty($resultMap, $property, $row, $resultObject);
 -			$nested = $property->getResultMapping();
 -			
 -			//nested property
 -			if($this->_sqlMap->getResultMaps()->contains($nested))
 -			{
 -				$nestedMap = $this->_sqlMap->getResultMap($nested);
 -				$groupKey = $this->getResultMapGroupKey($nestedMap, $row);
 -				
 -				//add the node reference first
 -				if(empty($parent))
 -					$this->_groupBy->add($group, $groupKey, '');
 -					
 -				//get the nested result mapping value
 -				$value = $this->fillResultMap($nested, $row, $groupKey);
 -
 -				//add it to the object tree graph
 -				$groupObject = array('object'=>$value, 'property' => $property->getProperty());
 -				if(empty($parent))
 -					$this->_groupBy->add($group, $groupKey, $groupObject);
 -				else
 -					$this->_groupBy->add($parent, $groupKey, $groupObject);
 -			}
 -		}
 -		return $resultObject;
 -	}
 -	
 -	/**
 -	 * Gets the result 'group by' groupping key for each row.
 -	 * @param TResultMap result mapping details.
 -	 * @param array a result set row retrieved from the database
 -	 * @return string groupping key.
 -	 */
 -	protected function getResultMapGroupKey($resultMap, $row)
 -	{
 -		$groupBy = $resultMap->getGroupBy();
 -		if(isset($row[$groupBy]))
 -			return $resultMap->getID().$row[$groupBy];
 -		else
 -			return $resultMap->getID().crc32(serialize($row));
 -	}
 -
 -	/**
 -	 * Fill the result map using default settings. If <tt>$resultMap</tt> is null
 -	 * the result object returned will be guessed from <tt>$resultObject</tt>.
 -	 * @param TResultMap result mapping details.
 -	 * @param array a result set row retrieved from the database
 -	 * @param object the result object
 -	 * @return mixed the result object filled with data.
 -	 */
 -	protected function fillDefaultResultMap($resultMap, $row, $resultObject)
 -	{
 -		if(is_null($resultObject)) 
 -			$resultObject='';
 -
 -		if(!is_null($resultMap))
 -			$result = $this->fillArrayResultMap($resultMap, $row, $resultObject);
 -		else
 -			$result = $row;
 -				
 -		//if scalar result types
 -		if(count($result) == 1 && ($type = gettype($resultObject))!= 'array')
 -			return $this->getScalarResult($result, $type);
 -		else
 -			return $result;
 -	}
 -	
 -	/**
 -	 * Retrieve the result map as an array.
 -	 * @param TResultMap result mapping details.
 -	 * @param array a result set row retrieved from the database
 -	 * @param object the result object
 -	 * @return array array list of result objects.
 -	 */
 -	protected function fillArrayResultMap($resultMap, $row, $resultObject)
 -	{
 -		$result = array();
 -		foreach($resultMap->getColumns() as $column)
 -		{
 -			if(is_null($column->getType()) 
 -				&& !is_null($resultObject) && !is_object($resultObject))
 -			$column->setType(gettype($resultObject));
 -			$result[$column->getProperty()] = $column->getDatabaseValue($row);
 -		}
 -		return $result;
 -	}
 -
 -	/**
 -	 * Converts the first array value to scalar value of given type.
 -	 * @param array list of results
 -	 * @param string scalar type.
 -	 * @return mixed scalar value.
 -	 */
 -	protected function getScalarResult($result, $type)
 -	{
 -		$scalar = array_shift($result);
 -		settype($scalar, $type);
 -		return $scalar;
 -	}
 -
 -	/**
 -	 * Set a property of the result object with appropriate value.
 -	 * @param TResultMap result mapping details.
 -	 * @param TResultProperty the result property to fill.
 -	 * @param array a result set row retrieved from the database
 -	 * @param object the result object
 -	 */
 -	protected function setObjectProperty($resultMap, $property, $row, &$resultObject)
 -	{
 -		$select = $property->getSelect();
 -		$key = $property->getProperty();
 -		$nested = $property->getNestedResultMap();
 -		if($key === '')
 -		{
 -			$resultObject = $property->getDatabaseValue($row);	
 -		}
 -		else if(strlen($select) == 0 && is_null($nested))
 -		{
 -			$value = $property->getDatabaseValue($row);
 -			
 -			$this->_IsRowDataFound = $this->_IsRowDataFound || ($value != null);
 -			if(is_array($resultObject) || is_object($resultObject))
 -				TPropertyAccess::set($resultObject, $key, $value);
 -			else
 -				$resultObject = $value;
 -		}
 -		else if(!is_null($nested))
 -		{
 -			if($property->isListType($resultObject) || $property->isArrayType($resultObject))
 -			{
 -				if(strlen($resultMap->getGroupBy()) <= 0)
 -					throw new TSqlMapExecutionException(
 -						'sqlmap_non_groupby_array_list_type', $resultMap->getID(),
 -						get_class($resultObject), $key);
 -			}
 -			else
 -			{
 -				$obj = $nested->createInstanceOfResult();
 -				if($this->fillPropertyWithResultMap($nested, $row, $obj) == false)
 -					$obj = null;
 -				TPropertyAccess::set($resultObject, $key, $obj);
 -			}
 -		}
 -		else //'select' ResultProperty
 -		{
 -			$this->enquequePostSelect($select, $resultMap, $property, $row, $resultObject);
 -		}
 -	}
 -
 -	/**
 -	 * Add nested result property to post select queue.
 -	 * @param string post select statement ID
 -	 * @param TResultMap current result mapping details.
 -	 * @param TResultProperty current result property.
 -	 * @param array a result set row retrieved from the database
 -	 * @param object the result object
 -	 */
 -	protected function enquequePostSelect($select, $resultMap, $property, $row, $resultObject)
 -	{
 -		$statement = $this->_sqlMap->getMappedStatement($select);
 -		$key = $this->getPostSelectKeys($resultMap, $property, $row);
 -		$postSelect = new TPostSelectBinding;
 -		$postSelect->setStatement($statement);
 -		$postSelect->setResultObject($resultObject);
 -		$postSelect->setResultProperty($property);
 -		$postSelect->setKeys($key);
 -
 -		if($property->isListType($resultObject))
 -		{
 -			$values = null;
 -			if($property->getLazyLoad())
 -			{
 -				$values = TLazyLoadList::newInstance($statement, $key,
 -								$resultObject, $property->getProperty());
 -				TPropertyAccess::set($resultObject, $property->getProperty(), $values);
 -			}
 -			else
 -				$postSelect->setMethod(self::QUERY_FOR_LIST);
 -		}
 -		else if($property->isArrayType($resultObject))
 -			$postSelect->setMethod(self::QUERY_FOR_ARRAY);
 -		else
 -			$postSelect->setMethod(self::QUERY_FOR_OBJECT);
 -
 -		if(!$property->getLazyLoad())
 -			array_push($this->_selectQueque, $postSelect);
 -	}
 -
 -	/**
 -	 * Finds in the post select property the SQL statement primary selection keys.
 -	 * @param TResultMap result mapping details
 -	 * @param TResultProperty result property
 -	 * @param array current row data.
 -	 * @return array list of primary key values.
 -	 */
 -	protected function getPostSelectKeys($resultMap, $property,$row)
 -	{
 -		$value = $property->getColumn();
 -		if(is_int(strpos($value.',',0)) || is_int(strpos($value, '=',0)))
 -		{
 -			$keys = array();
 -			foreach(explode(',', $value) as $entry)
 -			{
 -				$pair =explode('=',$entry);
 -				$keys[trim($pair[0])] = $row[trim($pair[1])];
 -			}
 -			return $keys;
 -		}
 -		else
 -		{
 -			return $property->getOrdinalValue($row);
 -		}
 -	}
 -
 -	/**
 -	 * Fills the property with result mapping results.
 -	 * @param TResultMap nested result mapping details.
 -	 * @param array a result set row retrieved from the database
 -	 * @param object the result object
 -	 * @return boolean true if the data was found, false otherwise.
 -	 */
 -	protected function fillPropertyWithResultMap($resultMap, $row, &$resultObject)
 -	{
 -		$dataFound = false;
 -		foreach($resultMap->getColumns() as $property)
 -		{
 -			$this->_IsRowDataFound = false;		
 -			$this->setObjectProperty($resultMap, $property, $row, $resultObject);
 -			$dataFound = $dataFound || $this->_IsRowDataFound;
 -		}
 -		$this->_IsRowDataFound = $dataFound;
 -		return $dataFound;
 -	}
 -}
 -
 -class TPostSelectBinding
 -{
 -	private $_statement=null;
 -	private $_property=null;
 -	private $_resultObject=null;
 -	private $_keys=null;
 -	private $_method=TMappedStatement::QUERY_FOR_LIST;
 -
 -	public function getStatement(){ return $this->_statement; }
 -	public function setStatement($value){ $this->_statement = $value; }
 -
 -	public function getResultProperty(){ return $this->_property; }
 -	public function setResultProperty($value){ $this->_property = $value; }
 -
 -	public function getResultObject(){ return $this->_resultObject; }
 -	public function setResultObject($value){ $this->_resultObject = $value; }
 -
 -	public function getKeys(){ return $this->_keys; }
 -	public function setKeys($value){ $this->_keys = $value; }
 -
 -	public function getMethod(){ return $this->_method; }
 -	public function setMethod($value){ $this->_method = $value; }
 -}
 -
 -/**
 - * TSQLMapObjectCollectionTree class.
 - * 
 - * Maps object collection graphs as trees. Nodes in the collection can
 - * be {@link add} using parent relationships. The object collections can be
 - * build using the {@link collect} method.
 - *
 - * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
 - * @version $Id$
 - * @package System.DataAccess.SQLMap.Statements
 - * @since 3.1
 - */
 -class TSQLMapObjectCollectionTree
 -{
 -	/**
 -	 * @var array object graph as tree
 -	 */
 -	private $_tree = array();
 -	/**
 -	 * @var array tree node values
 -	 */
 -	private $_entries = array();
 -	/**
 -	 * @var array resulting object collection
 -	 */
 -	private $_list = array();
 -	
 -	/**
 -	 * @return boolean true if the graph is empty
 -	 */
 -	public function isEmpty()
 -	{
 -		return count($this->_entries) == 0;
 -	}
 -	
 -	/**
 -	 * Add a new node to the object tree graph.
 -	 * @param string parent node id
 -	 * @param string new node id
 -	 * @param mixed node value
 -	 */
 -	public function add($parent, $node, $object='')
 -	{
 -		if(isset($this->_entries[$parent]) && !is_null($this->_entries[$parent])  
 -			&& isset($this->_entries[$node]) && !is_null($this->_entries[$node]))
 -		{
 -			$this->_entries[$node] = $object;
 -			return;
 -		}
 -		$this->_entries[$node] = $object;
 -		if(empty($parent))
 -		{
 -			if(isset($this->_entries[$node]))
 -				return;
 -			$this->_tree[$node] = array();
 -		}
 -		$found = $this->addNode($this->_tree, $parent, $node);
 -		if(!$found && !empty($parent))
 -		{
 -			$this->_tree[$parent] = array();
 -			if(!isset($this->_entries[$parent]) || $object !== '')
 -				$this->_entries[$parent] = $object;
 -			$this->addNode($this->_tree, $parent, $node);
 -		}
 -	}
 -	
 -	/**
 -	 * Find the parent node and add the new node as its child.
 -	 * @param array list of nodes to check
 -	 * @param string parent node id
 -	 * @param string new node id
 -	 * @return boolean true if parent node is found.
 -	 */
 -	protected function addNode(&$childs, $parent, $node)
 -	{
 -		$found = false;
 -		reset($childs);
 -		for($i = 0, $k = count($childs); $i < $k; $i++)
 -		{
 -			$key = key($childs);
 -			next($childs);
 -			if($key == $parent)
 -			{
 -				$found = true;
 -				$childs[$key][$node] = array();
 -			}
 -			else
 -			{
 -				$found = $found || $this->addNode($childs[$key], $parent, $node);
 -			}
 -		}
 -		return $found;
 -	}
 -	
 -	/**
 -	 * @return array object collection
 -	 */
 -	public function collect()
 -	{
 -		while(count($this->_tree) > 0)
 -			$this->collectChildren(null, $this->_tree);
 -		return $this->getCollection();
 -	}
 -	
 -	/**
 -	 * @param array list of nodes to check
 -	 * @return boolean true if all nodes are leaf nodes, false otherwise
 -	 */
 -	protected function hasChildren(&$nodes)
 -	{
 -		$hasChildren = false;
 -		foreach($nodes as $node)
 -			if(count($node) != 0)
 -				return true;
 -		return $hasChildren;		
 -	}
 -	
 -	/**
 -	 * Visit all the child nodes and collect them by removing.
 -	 * @param string parent node id
 -	 * @param array list of child nodes.
 -	 */
 -	protected function collectChildren($parent, &$nodes)
 -	{
 -		$noChildren = !$this->hasChildren($nodes);		
 -		$childs = array();
 -		for(reset($nodes); $key = key($nodes);)
 -		{
 -			next($nodes);
 -			if($noChildren)
 -			{
 -				$childs[] = $key;
 -				unset($nodes[$key]);
 -			}
 -			else
 -				$this->collectChildren($key, $nodes[$key]);
 -		}
 -		if(count($childs) > 0)
 -			$this->onChildNodesVisited($parent, $childs);
 -	}
 -	
 -	/**
 -	 * Set the object properties for all the child nodes visited.
 -	 * @param string parent node id
 -	 * @param array list of child nodes visited.
 -	 */
 -	protected function onChildNodesVisited($parent, $nodes)
 -	{
 -		if(empty($parent) || empty($this->_entries[$parent]))
 -			return;
 -	
 -		$parentObject = $this->_entries[$parent]['object'];
 -		$property = $this->_entries[$nodes[0]]['property'];		
 -		
 -		$list = TPropertyAccess::get($parentObject, $property);
 -	
 -		foreach($nodes as $node)
 -		{
 -			if($list instanceof TList)
 -				$parentObject->{$property}[] = $this->_entries[$node]['object'];
 -			else if(is_array($list))
 -				$list[] = $this->_entries[$node]['object'];
 -			else
 -				throw TSqlMapExecutionException(
 -					'sqlmap_property_must_be_list');
 -		}
 -		
 -		if(is_array($list))
 -			TPropertyAccess::set($parentObject, $property, $list);
 -	
 -		if($this->_entries[$parent]['property'] === null)
 -			$this->_list[] = $parentObject;
 -	}
 -	
 -	/**
 -	 * @return array object collection.
 -	 */
 -	protected function getCollection()
 -	{
 -		return $this->_list;
 -	}
 -}
 -
 -class TResultSetListItemParameter extends TComponent
 -{
 -	private $_resultObject;
 -	private $_parameterObject;
 -	private $_list;
 -
 -	public function __construct($result, $parameter, &$list)
 -	{
 -		$this->_resultObject = $result;
 -		$this->_parameterObject = $parameter;
 -		$this->_list = &$list;
 -	}
 -
 -	public function getResult()
 -	{
 -		return $this->_resultObject;
 -	}
 -
 -	public function getParameter()
 -	{
 -		return $this->_parameterObject;
 -	}
 -
 -	public function &getList()
 -	{
 -		return $this->_list;
 -	}
 -}
 -
 -class TResultSetMapItemParameter extends TComponent
 -{
 -	private $_key;
 -	private $_value;
 -	private $_parameterObject;
 -	private $_map;
 -
 -	public function __construct($key, $value, $parameter, &$map)
 -	{
 -		$this->_key = $key;
 -		$this->_value = $value;
 -		$this->_parameterObject = $parameter;
 -		$this->_map = &$map;
 -	}
 -
 -	public function getKey()
 -	{
 -		return $this->_key;
 -	}
 -	
 -	public function getValue()
 -	{
 -		return $this->_value;
 -	}
 -
 -	public function getParameter()
 -	{
 -		return $this->_parameterObject;
 -	}
 -
 -	public function &getMap()
 -	{
 -		return $this->_map;
 -	}
 -}
 -
 -?>
\ No newline at end of file diff --git a/framework/DataAccess/SQLMap/Statements/TPreparedCommand.php b/framework/DataAccess/SQLMap/Statements/TPreparedCommand.php deleted file mode 100644 index 3557fc1f..00000000 --- a/framework/DataAccess/SQLMap/Statements/TPreparedCommand.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php
 -
 -class TPreparedCommand
 -{
 -
 -	public function create($connection, $statement, $parameterObject)
 -	{
 -		$prepared = $statement->getSQL()->getPreparedStatement($parameterObject);
 -		$parameters = $this->applyParameterMap($connection, 
 -							$prepared, $statement, $parameterObject);
 -		return array('sql'=>$prepared->getPreparedSql(), 
 -					 'parameters'=>$parameters);
 -	}
 -
 -	protected function applyParameterMap($connection, 
 -						$prepared, $statement, $parameterObject)
 -	{
 -		$properties = $prepared->getParameterNames();
 -		$parameters = $prepared->getParameterValues();
 -		$values = array();
 -		for($i = 0, $k=$properties->getCount(); $i<$k; $i++)
 -		{
 -			$property = $statement->parameterMap()->getProperty($i);
 -			$values[] = $statement->parameterMap()->getParameter(
 -								$property, $parameterObject, $statement);
 -		}
 -		return count($values) > 0 ? $values : false;
 -	}
 -
 -/*	protected function applyParameterClass($connection, $statement, $parameter)
 -	{
 -		$type=$statement->getParameterClass();
 -		if(strlen($type) < 1) return;
 -		$prepared = $statement->getSql()->getPreparedStatement();
 -		$names = $prepared->getParameterNames();
 -		$values = $prepared->getParameterValues();
 -		switch (strtolower($type))
 -		{
 -			case 'integer':
 -			case 'int':
 -				$values[$names[0]] = $connection->quote(intval($parameter));
 -				break;
 -			case 'array':
 -				foreach($names as $name)
 -				{
 -					$key = substr(substr($name,0,-1),1);
 -					if(isset($parameter[$key]))
 -						$values->add($name,$connection->quote($parameter[$key]));
 -					else
 -						throw new TDataMapperException('unable_to_find_parameter', $key);
 -				}
 -				break;
 -			default:
 -				var_dump("todo for other parameter classes");
 -		}
 -	}
 -*/
 -}
 -
 -?>
\ No newline at end of file diff --git a/framework/DataAccess/SQLMap/Statements/TPreparedStatement.php b/framework/DataAccess/SQLMap/Statements/TPreparedStatement.php deleted file mode 100644 index e534f532..00000000 --- a/framework/DataAccess/SQLMap/Statements/TPreparedStatement.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php
 -
 -class TPreparedStatement extends TComponent
 -{
 -	private $_sqlString='';
 -	private $_parameterNames;
 -	private $_parameterValues;
 -
 -	public function __construct()
 -	{
 -		$this->_parameterNames=new TList;
 -		$this->_parameterValues=new TMap;
 -	}
 -
 -	public function getPreparedSql(){ return $this->_sqlString; }
 -	public function setPreparedSql($value){ $this->_sqlString = $value; }
 -
 -	public function getParameterNames(){ return $this->_parameterNames; }
 -	public function setParameterNames($value){ $this->_parameterNames = $value; }
 -
 -	public function getParameterValues(){ return $this->_parameterValues; }
 -	public function setParameterValues($value){ $this->_parameterValues = $value; }
 -
 -}
 -
 -?>
\ No newline at end of file diff --git a/framework/DataAccess/SQLMap/Statements/TPreparedStatementFactory.php b/framework/DataAccess/SQLMap/Statements/TPreparedStatementFactory.php deleted file mode 100644 index 52461983..00000000 --- a/framework/DataAccess/SQLMap/Statements/TPreparedStatementFactory.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php
 -
 -class TPreparedStatementFactory
 -{
 -	private $_statement;
 -	private $_preparedStatement;
 -	private $_parameterPrefix = 'param';
 -	private $_commandText;
 -
 -	public function __construct($statement, $sqlString)
 -	{
 -		$this->_statement = $statement;
 -		$this->_commandText = $sqlString;
 -	}
 -
 -	public function prepare()
 -	{
 -		$this->_preparedStatement = new TPreparedStatement();
 -		$this->_preparedStatement->setPreparedSql($this->_commandText);
 -		if(!is_null($this->_statement->parameterMap()))
 -			$this->createParametersForTextCommand();
 -		return $this->_preparedStatement;
 -	}
 -
 -	protected function createParametersForTextCommand()
 -	{
 -		foreach($this->_statement->ParameterMap()->getProperties() as $prop)
 -			$this->_preparedStatement->getParameterNames()->add($prop->getProperty());
 -	}
 -}
 -
 -?>
\ No newline at end of file diff --git a/framework/DataAccess/SQLMap/Statements/TSelectMappedStatement.php b/framework/DataAccess/SQLMap/Statements/TSelectMappedStatement.php deleted file mode 100644 index b6f179c0..00000000 --- a/framework/DataAccess/SQLMap/Statements/TSelectMappedStatement.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php
 -
 -class TSelectMappedStatement extends TMappedStatement
 -{
 -	public function executeInsert($connection, $parameter)
 -	{
 -		throw new TSqlMapExecutionException(
 -				'sqlmap_cannot_execute_insert', get_class($this), $this->getID());
 -	}
 -
 -	public function executeUpdate($connection, $parameter)
 -	{
 -		throw new TSqlMapExecutionException(
 -				'sqlmap_cannot_execute_update', get_class($this), $this->getID());
 -	}
 -
 -}
 -
 -?>
\ No newline at end of file diff --git a/framework/DataAccess/SQLMap/Statements/TSimpleDynamicSql.php b/framework/DataAccess/SQLMap/Statements/TSimpleDynamicSql.php deleted file mode 100644 index 1230b4f7..00000000 --- a/framework/DataAccess/SQLMap/Statements/TSimpleDynamicSql.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php
 -
 -class TSimpleDynamicSql extends TStaticSql
 -{
 -	private $_mappings=array();
 -	
 -	public function __construct($mappings)
 -	{
 -		$this->_mappings = $mappings;
 -	}
 -
 -	public function getPreparedStatement($parameter=null)
 -	{
 -		$statement = parent::getPreparedStatement($parameter);
 -		if($parameter !== null)
 -			$this->mapDynamicParameter($statement, $parameter);
 -		return $statement;
 -	}
 -	
 -	protected function mapDynamicParameter($statement, $parameter)
 -	{
 -		$sql = $statement->getPreparedSql();
 -		foreach($this->_mappings as $property)
 -		{
 -			$value = TPropertyAccess::get($parameter, $property);
 -			$sql = preg_replace('/'.TSimpleDynamicParser::DYNAMIC_TOKEN.'/', $value, $sql, 1);
 -		}
 -		$statement->setPreparedSql($sql);
 -	}
 -}
 -
 -?>
\ No newline at end of file diff --git a/framework/DataAccess/SQLMap/Statements/TSqlMapSelect.php b/framework/DataAccess/SQLMap/Statements/TSqlMapSelect.php deleted file mode 100644 index b33bc27e..00000000 --- a/framework/DataAccess/SQLMap/Statements/TSqlMapSelect.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php
 -
 -class TSqlMapSelect extends TSqlMapStatement
 -{
 -	private $_generate;
 -
 -	public function getGenerate(){ return $this->_generate; }
 -	public function setGenerate($value){ $this->_generate = $value; }
 -}
 -
 -?>
\ No newline at end of file diff --git a/framework/DataAccess/SQLMap/Statements/TStaticSql.php b/framework/DataAccess/SQLMap/Statements/TStaticSql.php deleted file mode 100644 index b99b86ed..00000000 --- a/framework/DataAccess/SQLMap/Statements/TStaticSql.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php
 -
 -class TStaticSql extends TComponent
 -{
 -	private $_preparedStatement;
 -
 -	public function buildPreparedStatement($statement, $sqlString)
 -	{
 -		$factory = new TPreparedStatementFactory($statement, $sqlString);
 -		$this->_preparedStatement = $factory->prepare();
 -	}
 -
 -	public function getPreparedStatement($parameter=null)
 -	{
 -		return $this->_preparedStatement;
 -	}
 -}
 -
 -?>
\ No newline at end of file diff --git a/framework/DataAccess/SQLMap/Statements/TUpdateMappedStatement.php b/framework/DataAccess/SQLMap/Statements/TUpdateMappedStatement.php deleted file mode 100644 index 353f4b26..00000000 --- a/framework/DataAccess/SQLMap/Statements/TUpdateMappedStatement.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php
 -
 -class TUpdateMappedStatement extends TMappedStatement
 -{
 -	public function executeInsert($connection, $parameter)
 -	{
 -		throw new TSqlMapExecutionException(
 -				'sqlmap_cannot_execute_insert', get_class($this), $this->getID());
 -	}
 -
 -	public function executeQueryForMap($connection, $parameter, $keyProperty, 
 -											$valueProperty=null)
 -	{
 -		throw new TSqlMapExecutionException(
 -				'sqlmap_cannot_execute_query_for_map', get_class($this), $this->getID());
 -	}
 -
 -	public function executeQueryForList($connection, $parameter, $result,
 -										$skip=-1, $max=-1)
 -	{
 -		throw new TSqlMapExecutionException(
 -				'sqlmap_cannot_execute_query_for_list', get_class($this), $this->getID());
 -	}
 -
 -	public function executeQueryForObject($connection, $parameter, $result)
 -	{
 -		throw new TSqlMapExecutionException(
 -				'sqlmap_cannot_execute_query_for_object', get_class($this), $this->getID());
 -	}
 -}
 -
 -?>
\ No newline at end of file  | 
