|
Server IP : 10.2.73.233 / Your IP : 216.73.216.47 Web Server : Apache/2.4.59 (Debian) System : Linux polon 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64 User : www-data ( 33) PHP Version : 5.6.40-64+0~20230107.71+debian10~1.gbp673146 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/ilpnowa/../ifk/web/framework/Web/../Data/SqlMap/Configuration/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?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-2014 PradoSoft
* @license http://www.pradosoft.com/license/
* @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>
* @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($handler!==null)
return $handler->createNewInstance($row);
else
return $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);
}
public function __sleep()
{
$cn = __CLASS__;
$exprops = array("\0$cn\0_resultMap");
if (!$this->_parameterMapName) $exprops[] = "\0$cn\0_parameterMapName";
if (!$this->_parameterMap) $exprops[] = "\0$cn\0_parameterMap";
if (!$this->_parameterClassName) $exprops[] = "\0$cn\0_parameterClassName";
if (!$this->_resultMapName) $exprops[] = "\0$cn\0_resultMapName";
if (!$this->_resultMap) $exprops[] = "\0$cn\0_resultMap";
if (!$this->_resultClassName) $exprops[] = "\0$cn\0_resultClassName";
if (!$this->_cacheModelName) $exprops[] = "\0$cn\0_cacheModelName";
if (!$this->_SQL) $exprops[] = "\0$cn\0_SQL";
if (!$this->_listClass) $exprops[] = "\0$cn\0_listClass";
if (!$this->_typeHandler) $exprops[] = "\0$cn\0_typeHandler";
if (!$this->_extendStatement) $exprops[] = "\0$cn\0_extendStatement";
if (!$this->_cache) $exprops[] = "\0$cn\0_cache";
return array_diff(parent::__sleep(),$exprops);
}
}
/**
* TSqlMapSelect class file.
*
* @author Wei Zhuo <weizho[at]gmail[dot]com>
* @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>
* @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>
* @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>
* @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>
* @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';
}
}