Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** TSqlMapStatement, TSqlMapInsert, TSqlMapUpdate, TSqlMapDelete,* TSqlMapSelect and TSqlMapSelectKey classes file.** @author Wei Zhuo <weizhuo[at]gmail[dot]com>* @link http://www.pradosoft.com/* @copyright Copyright © 2005-2008 PradoSoft* @license http://www.pradosoft.com/license/* @version $Id: TSqlMapStatement.php 2541 2008-10-21 15:05:13Z qiang.xue $* @package System.Data.SqlMap.Configuration*//*** TSqlMapStatement class corresponds to <statement> element.** Mapped Statements can hold any SQL statement and can use Parameter Maps* and Result Maps for input and output.** The <statement> element is a general "catch all" element that can be used* for any type of SQL statement. Generally it is a good idea to use one of the* more specific statement-type elements. The more specific elements provided* better error-checking and even more functionality. (For example, the insert* statement can return a database-generated key.)** @author Wei Zhuo <weizho[at]gmail[dot]com>* @version $Id: TSqlMapStatement.php 2541 2008-10-21 15:05:13Z qiang.xue $* @package System.Data.SqlMap.Configuration* @since 3.1*/class TSqlMapStatement extends TComponent{private $_parameterMapName;private $_parameterMap;private $_parameterClassName;private $_resultMapName;private $_resultMap;private $_resultClassName;private $_cacheModelName;private $_SQL;private $_listClass;private $_typeHandler;private $_extendStatement;private $_cache;private $_ID;/*** @return string name for this statement, unique to each sql map manager.*/public function getID(){return $this->_ID;}/*** @param string name for this statement, which must be unique for each sql map manager.*/public function setID($value){$this->_ID=$value;}/*** @return string name of a parameter map.*/public function getParameterMap(){return $this->_parameterMapName;}/*** A Parameter Map defines an ordered list of values that match up with* the "?" placeholders of a standard, parameterized query statement.* @param string parameter map name.*/public function setParameterMap($value){$this->_parameterMapName = $value;}/*** @return string parameter class name.*/public function getParameterClass(){return $this->_parameterClassName;}/*** If a {@link ParameterMap setParameterMap()} property is not specified,* you may specify a ParameterClass instead and use inline parameters.* The value of the parameterClass attribute can be any existing PHP class name.* @param string parameter class name.*/public function setParameterClass($value){$this->_parameterClassName = $value;}/*** @return string result map name.*/public function getResultMap(){return $this->_resultMapName;}/*** A Result Map lets you control how data is extracted from the result of a* query, and how the columns are mapped to object properties.* @param string result map name.*/public function setResultMap($value){$this->_resultMapName = $value;}/*** @return string result class name.*/public function getResultClass(){return $this->_resultClassName;}/*** If a {@link ResultMap setResultMap()} is not specified, you may specify a* ResultClass instead. The value of the ResultClass property can be the* name of a PHP class or primitives like integer, string, or array. The* class specified will be automatically mapped to the columns in the* result, based on the result metadata.* @param string result class name.*/public function setResultClass($value){$this->_resultClassName = $value;}/*** @return string cache mode name.*/public function getCacheModel(){return $this->_cacheModelName;}/*** @param string cache mode name.*/public function setCacheModel($value){$this->_cacheModelName = $value;}/*** @return TSqlMapCacheModel cache implementation instance for this statement.*/public function getCache(){return $this->_cache;}/*** @param TSqlMapCacheModel cache implementation instance for this statement.*/public function setCache($value){$this->_cache = $value;}/*** @return TStaticSql sql text container.*/public function getSqlText(){return $this->_SQL;}/*** @param TStaticSql sql text container.*/public function setSqlText($value){$this->_SQL = $value;}/*** @return string name of a PHP class that implements ArrayAccess.*/public function getListClass(){return $this->_listClass;}/*** An ArrayAccess class can be specified to handle the type of objects in the collection.* @param string name of a PHP class that implements ArrayAccess.*/public function setListClass($value){$this->_listClass = $value;}/*** @return string another statement element name.*/public function getExtends(){return $this->_extendStatement;}/*** @param string name of another statement element to extend.*/public function setExtends($value){$this->_extendStatement = $value;}/*** @return TResultMap the result map corresponding to the* {@link ResultMap getResultMap()} property.*/public function resultMap(){return $this->_resultMap;}/*** @return TParameterMap the parameter map corresponding to the* {@link ParameterMap getParameterMap()} property.*/public function parameterMap(){return $this->_parameterMap;}/*** @param TInlineParameterMap parameter extracted from the sql text.*/public function setInlineParameterMap($map){$this->_parameterMap = $map;}/*** @param TSqlMapManager initialize the statement, sets the result and parameter maps.*/public function initialize($manager){if(strlen($this->_resultMapName) > 0)$this->_resultMap = $manager->getResultMap($this->_resultMapName);if(strlen($this->_parameterMapName) > 0)$this->_parameterMap = $manager->getParameterMap($this->_parameterMapName);}/*** @param TSqlMapTypeHandlerRegistry type handler registry* @return ArrayAccess new instance of list class.*/public function createInstanceOfListClass($registry){if(strlen($type = $this->getListClass()) > 0)return $this->createInstanceOf($registry,$type);return array();}/*** Create a new instance of a given type.* @param TSqlMapTypeHandlerRegistry type handler registry* @param string result class name.* @param array result data.* @return mixed result object.*/protected function createInstanceOf($registry,$type,$row=null){$handler = $registry->getTypeHandler($type);if(!is_null($handler))return $handler->createNewInstance($row);elsereturn $registry->createInstanceOf($type);}/*** Create a new instance of result class.* @param TSqlMapTypeHandlerRegistry type handler registry* @param array result data.* @return mixed result object.*/public function createInstanceOfResultClass($registry,$row){if(strlen($type= $this->getResultClass()) > 0)return $this->createInstanceOf($registry,$type,$row);}}/*** TSqlMapSelect class file.** @author Wei Zhuo <weizho[at]gmail[dot]com>* @version $Id: TSqlMapStatement.php 2541 2008-10-21 15:05:13Z qiang.xue $* @package System.Data.SqlMap.Statements* @since 3.1*/class TSqlMapSelect extends TSqlMapStatement{private $_generate;public function getGenerate(){ return $this->_generate; }public function setGenerate($value){ $this->_generate = $value; }}/*** TSqlMapInsert class corresponds to the <insert> element.** The <insert> element allows <selectKey> child elements that can be used* to generate a key to be used for the insert command.** @author Wei Zhuo <weizho[at]gmail[dot]com>* @version $Id: TSqlMapStatement.php 2541 2008-10-21 15:05:13Z qiang.xue $* @package System.Data.SqlMap.Configuration* @since 3.1*/class TSqlMapInsert extends TSqlMapStatement{private $_selectKey=null;/*** @return TSqlMapSelectKey select key element.*/public function getSelectKey(){return $this->_selectKey;}/*** @param TSqlMapSelectKey select key.*/public function setSelectKey($value){$this->_selectKey = $value;}}/*** TSqlMapUpdate class corresponds to <update> element.** @author Wei Zhuo <weizho[at]gmail[dot]com>* @version $Id: TSqlMapStatement.php 2541 2008-10-21 15:05:13Z qiang.xue $* @package System.Data.SqlMap.Configuration* @since 3.1*/class TSqlMapUpdate extends TSqlMapStatement{}/*** TSqlMapDelete class corresponds to the <delete> element.** @author Wei Zhuo <weizho[at]gmail[dot]com>* @version $Id: TSqlMapStatement.php 2541 2008-10-21 15:05:13Z qiang.xue $* @package System.Data.SqlMap.Configuration* @since 3.1*/class TSqlMapDelete extends TSqlMapUpdate{}/*** TSqlMapSelect corresponds to the <selectKey> element.** @author Wei Zhuo <weizho[at]gmail[dot]com>* @version $Id: TSqlMapStatement.php 2541 2008-10-21 15:05:13Z qiang.xue $* @package System.Data.SqlMap.Configuration* @since 3.1*/class TSqlMapSelectKey extends TSqlMapStatement{private $_type = 'post';private $_property;/*** @return string select generated key type, 'post' or 'pre'.*/public function getType(){return $this->_type;}/*** @param string select generated key type, 'post' or 'pre'.*/public function setType($value){$this->_type = strtolower($value) == 'post' ? 'post' : 'pre';}/*** @return string property name for the generated key.*/public function getProperty(){return $this->_property;}/*** @param string property name for the generated key.*/public function setProperty($value){$this->_property = $value;}/*** @throws TSqlMapConfigurationException extends is unsupported.*/public function setExtends($value){throw new TSqlMapConfigurationException('sqlmap_can_not_extend_select_key');}/*** @return boolean true if key is generated after insert command, false otherwise.*/public function getIsAfter(){return $this->_type == 'post';}}