2010-12-02 23:34:41 +00:00
< ? php
require_once 'propel/util/BasePeer.php' ;
2017-08-11 12:33:30 -04:00
2010-12-02 23:34:41 +00:00
/**
* Base static class for performing query and update operations on the 'APPLICATION' table .
2012-10-09 12:32:00 -04:00
*
* @ package workflow . engine . classes
2017-08-11 12:33:30 -04:00
*/
abstract class ArrayBasePeer
2012-10-09 12:32:00 -04:00
{
/**
* The default database name for this class
*/
const DATABASE_NAME = 'dbarray' ;
/**
* A class that can be returned by this peer .
*/
const CLASS_DEFAULT = 'classes.model.Application' ;
/**
* The total number of columns .
*/
const NUM_COLUMNS = 15 ;
/**
* The number of lazy - loaded columns .
*/
const NUM_LAZY_LOAD_COLUMNS = 0 ;
/**
* The column name for the APP_UID field
*/
const APP_UID = 'APPLICATION.APP_UID' ;
/**
* The column name for the APP_NUMBER field
*/
const APP_NUMBER = 'APPLICATION.APP_NUMBER' ;
/**
* The column name for the APP_PARENT field
*/
const APP_PARENT = 'APPLICATION.APP_PARENT' ;
/**
* The column name for the APP_STATUS field
*/
const APP_STATUS = 'APPLICATION.APP_STATUS' ;
/**
* The column name for the PRO_UID field
*/
const PRO_UID = 'APPLICATION.PRO_UID' ;
/**
* The column name for the APP_PROC_STATUS field
*/
const APP_PROC_STATUS = 'APPLICATION.APP_PROC_STATUS' ;
/**
* The column name for the APP_PROC_CODE field
*/
const APP_PROC_CODE = 'APPLICATION.APP_PROC_CODE' ;
/**
* The column name for the APP_PARALLEL field
*/
const APP_PARALLEL = 'APPLICATION.APP_PARALLEL' ;
/**
* The column name for the APP_INIT_USER field
*/
const APP_INIT_USER = 'APPLICATION.APP_INIT_USER' ;
/**
* The column name for the APP_CUR_USER field
*/
const APP_CUR_USER = 'APPLICATION.APP_CUR_USER' ;
/**
* The column name for the APP_CREATE_DATE field
*/
const APP_CREATE_DATE = 'APPLICATION.APP_CREATE_DATE' ;
/**
* The column name for the APP_INIT_DATE field
*/
const APP_INIT_DATE = 'APPLICATION.APP_INIT_DATE' ;
/**
* The column name for the APP_FINISH_DATE field
*/
const APP_FINISH_DATE = 'APPLICATION.APP_FINISH_DATE' ;
/**
* The column name for the APP_UPDATE_DATE field
*/
const APP_UPDATE_DATE = 'APPLICATION.APP_UPDATE_DATE' ;
/**
* The column name for the APP_DATA field
*/
const APP_DATA = 'APPLICATION.APP_DATA' ;
/**
* The PHP to DB Name Mapping
*/
private static $phpNameMap = null ;
/**
* Holds an array of fieldnames
*
* First dimension keys are the type constants
* e . g . self :: $fieldNames [ self :: TYPE_PHPNAME ][ 0 ] = 'Id'
*/
2017-08-11 12:33:30 -04:00
private static $fieldNames = array ( BasePeer :: TYPE_PHPNAME => array ( 'AppUid' , 'AppNumber' , 'AppParent' , 'AppStatus' , 'ProUid' , 'AppProcStatus' , 'AppProcCode' , 'AppParallel' , 'AppInitUser' , 'AppCurUser' , 'AppCreateDate' , 'AppInitDate' , 'AppFinishDate' , 'AppUpdateDate' , 'AppData'
), BasePeer :: TYPE_COLNAME => array ( ApplicationPeer :: APP_UID , ApplicationPeer :: APP_NUMBER , ApplicationPeer :: APP_PARENT , ApplicationPeer :: APP_STATUS , ApplicationPeer :: PRO_UID , ApplicationPeer :: APP_PROC_STATUS , ApplicationPeer :: APP_PROC_CODE , ApplicationPeer :: APP_PARALLEL , ApplicationPeer :: APP_INIT_USER , ApplicationPeer :: APP_CUR_USER , ApplicationPeer :: APP_CREATE_DATE , ApplicationPeer :: APP_INIT_DATE , ApplicationPeer :: APP_FINISH_DATE , ApplicationPeer :: APP_UPDATE_DATE , ApplicationPeer :: APP_DATA
), BasePeer :: TYPE_FIELDNAME => array ( 'APP_UID' , 'APP_NUMBER' , 'APP_PARENT' , 'APP_STATUS' , 'PRO_UID' , 'APP_PROC_STATUS' , 'APP_PROC_CODE' , 'APP_PARALLEL' , 'APP_INIT_USER' , 'APP_CUR_USER' , 'APP_CREATE_DATE' , 'APP_INIT_DATE' , 'APP_FINISH_DATE' , 'APP_UPDATE_DATE' , 'APP_DATA'
), BasePeer :: TYPE_NUM => array ( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14
2012-10-09 12:32:00 -04:00
)
);
/**
* Holds an array of keys for quick access to the fieldnames array
*
* First dimension keys are the type constants
* e . g . self :: $fieldNames [ BasePeer :: TYPE_PHPNAME ][ 'Id' ] = 0
*/
2017-08-11 12:33:30 -04:00
private static $fieldKeys = array ( BasePeer :: TYPE_PHPNAME => array ( 'AppUid' => 0 , 'AppNumber' => 1 , 'AppParent' => 2 , 'AppStatus' => 3 , 'ProUid' => 4 , 'AppProcStatus' => 5 , 'AppProcCode' => 6 , 'AppParallel' => 7 , 'AppInitUser' => 8 , 'AppCurUser' => 9 , 'AppCreateDate' => 10 , 'AppInitDate' => 11 , 'AppFinishDate' => 12 , 'AppUpdateDate' => 13 , 'AppData' => 14
), BasePeer :: TYPE_COLNAME => array ( ApplicationPeer :: APP_UID => 0 , ApplicationPeer :: APP_NUMBER => 1 , ApplicationPeer :: APP_PARENT => 2 , ApplicationPeer :: APP_STATUS => 3 , ApplicationPeer :: PRO_UID => 4 , ApplicationPeer :: APP_PROC_STATUS => 5 , ApplicationPeer :: APP_PROC_CODE => 6 , ApplicationPeer :: APP_PARALLEL => 7 , ApplicationPeer :: APP_INIT_USER => 8 , ApplicationPeer :: APP_CUR_USER => 9 , ApplicationPeer :: APP_CREATE_DATE => 10 , ApplicationPeer :: APP_INIT_DATE => 11 , ApplicationPeer :: APP_FINISH_DATE => 12 , ApplicationPeer :: APP_UPDATE_DATE => 13 , ApplicationPeer :: APP_DATA => 14
), BasePeer :: TYPE_FIELDNAME => array ( 'APP_UID' => 0 , 'APP_NUMBER' => 1 , 'APP_PARENT' => 2 , 'APP_STATUS' => 3 , 'PRO_UID' => 4 , 'APP_PROC_STATUS' => 5 , 'APP_PROC_CODE' => 6 , 'APP_PARALLEL' => 7 , 'APP_INIT_USER' => 8 , 'APP_CUR_USER' => 9 , 'APP_CREATE_DATE' => 10 , 'APP_INIT_DATE' => 11 , 'APP_FINISH_DATE' => 12 , 'APP_UPDATE_DATE' => 13 , 'APP_DATA' => 14
), BasePeer :: TYPE_NUM => array ( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14
2012-10-09 12:32:00 -04:00
)
);
/**
*
* @ return MapBuilder the map builder for this peer
* @ throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException .
*/
2017-08-11 12:33:30 -04:00
public static function getMapBuilder ()
2012-10-09 12:32:00 -04:00
{
include_once 'classes/model/map/ApplicationMapBuilder.php' ;
2017-08-11 12:33:30 -04:00
return BasePeer :: getMapBuilder ( 'classes.model.map.ApplicationMapBuilder' );
2012-10-09 12:32:00 -04:00
}
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
/**
* Gets a map ( hash ) of PHP names to DB column names .
*
* @ return array The PHP to DB name map for this peer
* @ throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException .
* @ deprecated Use the getFieldNames () and translateFieldName () methods instead of this .
*/
2017-08-11 12:33:30 -04:00
public static function getPhpNameMap ()
2012-10-09 12:32:00 -04:00
{
if ( self :: $phpNameMap === null ) {
$map = ApplicationPeer :: getTableMap ();
$columns = $map -> getColumns ();
2017-08-11 12:33:30 -04:00
$nameMap = array ();
2012-10-09 12:32:00 -04:00
foreach ( $columns as $column ) {
$nameMap [ $column -> getPhpName ()] = $column -> getColumnName ();
}
self :: $phpNameMap = $nameMap ;
}
return self :: $phpNameMap ;
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
/**
* Translates a fieldname to another type
*
* @ param string $name field name
* @ param string $fromType One of the class type constants TYPE_PHPNAME ,
* TYPE_COLNAME , TYPE_FIELDNAME , TYPE_NUM
* @ param string $toType One of the class type constants
* @ return string translated name of the field .
*/
2017-08-11 12:33:30 -04:00
static public function translateFieldName ( $name , $fromType , $toType )
2012-10-09 12:32:00 -04:00
{
2017-08-11 12:33:30 -04:00
$toNames = self :: getFieldNames ( $toType );
$key = isset ( self :: $fieldKeys [ $fromType ][ $name ]) ? self :: $fieldKeys [ $fromType ][ $name ] : null ;
2012-10-09 12:32:00 -04:00
if ( $key === null ) {
2017-08-11 12:33:30 -04:00
throw new PropelException ( " ' $name ' could not be found in the field names of type ' $fromType '. These are: " . print_r ( self :: $fieldKeys [ $fromType ], true ));
2012-10-09 12:32:00 -04:00
}
return $toNames [ $key ];
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
/**
* Returns an array of of field names .
*
* @ param string $type The type of fieldnames to return :
* One of the class type constants TYPE_PHPNAME ,
* TYPE_COLNAME , TYPE_FIELDNAME , TYPE_NUM
* @ return array A list of field names
*/
2017-08-11 12:33:30 -04:00
static public function getFieldNames ( $type = BasePeer :: TYPE_PHPNAME )
2012-10-09 12:32:00 -04:00
{
2017-08-11 12:33:30 -04:00
if ( ! array_key_exists ( $type , self :: $fieldNames )) {
throw new PropelException ( 'Method getFieldNames() expects the parameter $type to be one of the class constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM. ' . $type . ' was given.' );
2012-10-09 12:32:00 -04:00
}
return self :: $fieldNames [ $type ];
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
/**
* Convenience method which changes table . column to alias . column .
*
* Using this method you can maintain SQL abstraction while using column aliases .
* < code >
* $c -> addAlias ( " alias1 " , TablePeer :: TABLE_NAME );
* $c -> addJoin ( TablePeer :: alias ( " alias1 " , TablePeer :: PRIMARY_KEY_COLUMN ), TablePeer :: PRIMARY_KEY_COLUMN );
* </ code >
*
* @ param string $alias The alias for the current table .
* @ param string $column The column name for current table . ( i . e . ApplicationPeer :: COLUMN_NAME ) .
* @ return string
*/
2017-08-11 12:33:30 -04:00
public static function alias ( $alias , $column )
2012-10-09 12:32:00 -04:00
{
2017-08-11 12:33:30 -04:00
return str_replace ( ApplicationPeer :: TABLE_NAME . '.' , $alias . '.' , $column );
2012-10-09 12:32:00 -04:00
}
/**
* Add all the columns needed to create a new object .
*
* Note : any columns that were marked with lazyLoad = " true " in the
* XML schema will not be added to the select list and only loaded
* on demand .
*
* @ param Criteria $criteria object containing the columns to add .
* @ throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException .
*/
2017-08-11 12:33:30 -04:00
public static function addSelectColumns ( Criteria $criteria )
2012-10-09 12:32:00 -04:00
{
}
const COUNT = 'COUNT(APPLICATION.APP_UID)' ;
const COUNT_DISTINCT = 'COUNT(DISTINCT APPLICATION.APP_UID)' ;
/**
* Returns the number of rows matching criteria .
*
* @ param Criteria $criteria
* @ param boolean $distinct Whether to select only distinct columns ( You can also set DISTINCT modifier in Criteria ) .
* @ param Connection $con
* @ return int Number of matching rows .
* @ todo Review declarated constant d ' not used COUNT , COUNT_DISTINCT
*/
2017-08-11 12:33:30 -04:00
public static function doCount ( Criteria $criteria , $distinct = false , $con = null )
2012-10-09 12:32:00 -04:00
{
// we're going to modify criteria, so copy it first
$criteria = clone $criteria ;
// clear out anything that might confuse the ORDER BY clause
$criteria -> clearSelectColumns () -> clearOrderByColumns ();
/*
2010-12-02 23:34:41 +00:00
krumo ( ApplicationPeer :: COUNT_DISTINCT );
if ( $distinct || in_array ( Criteria :: DISTINCT , $criteria -> getSelectModifiers ())) {
$criteria -> addSelectColumn ( ApplicationPeer :: COUNT_DISTINCT );
} else {
$criteria -> addSelectColumn ( ApplicationPeer :: COUNT );
}
*/
2017-08-11 12:33:30 -04:00
$criteria -> addSelectColumn ( 'COUNT(*)' );
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
// just in case we're grouping: add those columns to the select statement
foreach ( $criteria -> getGroupByColumns () as $column ) {
2017-08-11 12:33:30 -04:00
$criteria -> addSelectColumn ( $column );
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
2017-08-11 12:33:30 -04:00
$rs = ArrayBasePeer :: doSelectRS ( $criteria , $con );
2012-10-09 12:32:00 -04:00
if ( $rs -> next ()) {
$row = $rs -> getRow ();
return $row [ 1 ];
2010-12-02 23:34:41 +00:00
} else {
2012-10-09 12:32:00 -04:00
// no rows returned; we infer that means 0 matches.
return 0 ;
2010-12-02 23:34:41 +00:00
}
}
2012-10-09 12:32:00 -04:00
/**
* Method to select one object from the DB .
*
* @ param Criteria $criteria object used to create the SELECT statement .
* @ param Connection $con
* @ return Application
* @ throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException .
*/
2017-08-11 12:33:30 -04:00
public static function doSelectOne ( Criteria $criteria , $con = null )
2012-10-09 12:32:00 -04:00
{
$critcopy = clone $criteria ;
2017-08-11 12:33:30 -04:00
$critcopy -> setLimit ( 1 );
$objects = ApplicationPeer :: doSelect ( $critcopy , $con );
2012-10-09 12:32:00 -04:00
if ( $objects ) {
return $objects [ 0 ];
}
return null ;
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
/**
* Method to create select SQL .
*
* @ param Criteria $criteria object used to create the SELECT statement .
* @ param String $tableName
* @ param Array & $params
* @ throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException .
*/
2017-08-11 12:33:30 -04:00
private function createSelectSql ( $criteria , $tableName , & $params )
2012-10-09 12:32:00 -04:00
{
2017-08-11 12:33:30 -04:00
$db = Propel :: getDB ( $criteria -> getDbName ());
2012-10-09 12:32:00 -04:00
// redundant definition $selectModifiers = array();
2017-08-11 12:33:30 -04:00
$selectClause = array ();
$fromClause = array ();
$joinClause = array ();
$joinTables = array ();
$whereClause = array ();
$orderByClause = array ();
$groupByClause = array ();
2012-10-09 12:32:00 -04:00
$orderBy = $criteria -> getOrderByColumns ();
$groupBy = $criteria -> getGroupByColumns ();
$ignoreCase = $criteria -> isIgnoreCase ();
$select = $criteria -> getSelectColumns ();
$aliases = $criteria -> getAsColumns ();
$fromClause [] = $criteria -> getDBArrayTable ();
// simple copy
$selectModifiers = $criteria -> getSelectModifiers ();
// get selected columns
foreach ( $select as $columnName ) {
$tableName = null ;
$selectClause [] = $columnName ; // the full column name: e.g. MAX(books.price)
2017-08-11 12:33:30 -04:00
$parenPos = strpos ( $columnName , '(' );
$dotPos = strpos ( $columnName , '.' );
2012-10-09 12:32:00 -04:00
// [HL] I think we really only want to worry about adding stuff to
// the fromClause if this function has a TABLE.COLUMN in it at all.
// e.g. COUNT(*) should not need this treatment -- or there needs to
// be special treatment for '*'
if ( $dotPos !== false ) {
if ( $parenPos === false ) { // table.column
2017-08-11 12:33:30 -04:00
$tableName = substr ( $columnName , 0 , $dotPos );
2012-10-09 12:32:00 -04:00
} else { // FUNC(table.column)
2017-08-11 12:33:30 -04:00
$tableName = substr ( $columnName , $parenPos + 1 , $dotPos - ( $parenPos + 1 ));
2012-10-09 12:32:00 -04:00
// functions may contain qualifiers so only take the last
// word as the table name.
// COUNT(DISTINCT books.price)
2017-08-11 12:33:30 -04:00
$lastSpace = strpos ( $tableName , ' ' );
2012-10-09 12:32:00 -04:00
if ( $lastSpace !== false ) { // COUNT(DISTINCT books.price)
2017-08-11 12:33:30 -04:00
$tableName = substr ( $tableName , $lastSpace + 1 );
2012-10-09 12:32:00 -04:00
}
}
2017-08-11 12:33:30 -04:00
$tableName2 = $criteria -> getTableForAlias ( $tableName );
2012-10-09 12:32:00 -04:00
if ( $tableName2 !== null ) {
$fromClause [] = $tableName2 . ' ' . $tableName ;
} else {
$fromClause [] = $tableName ;
}
} // if $dotPost !== null
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
// set the aliases
foreach ( $aliases as $alias => $col ) {
$selectClause [] = $col . " AS " . $alias ;
}
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
// add the criteria to WHERE clause
foreach ( $criteria -> keys () as $key ) {
2017-08-11 12:33:30 -04:00
$criterion = $criteria -> getCriterion ( $key );
2012-10-09 12:32:00 -04:00
$someCriteria = $criterion -> getAttachedCriterion ();
2017-08-11 12:33:30 -04:00
$someCriteriaLength = count ( $someCriteria );
2012-10-09 12:32:00 -04:00
$table = null ;
2017-08-11 12:33:30 -04:00
for ( $i = 0 ; $i < $someCriteriaLength ; $i ++ ) {
2012-10-09 12:32:00 -04:00
$tableName = $someCriteria [ $i ] -> getTable ();
2017-08-11 12:33:30 -04:00
$table = $criteria -> getTableForAlias ( $tableName );
2012-10-09 12:32:00 -04:00
if ( $table !== null ) {
$fromClause [] = $table . ' ' . $tableName ;
} else {
$fromClause [] = $tableName ;
$table = $tableName ;
}
2017-08-11 12:33:30 -04:00
$ignoreCase = (( $criteria -> isIgnoreCase () || $someCriteria [ $i ] -> isIgnoreCase ()) && ( $dbMap -> getTable ( $table ) -> getColumn ( $someCriteria [ $i ] -> getColumn ()) -> getType () == " string " ));
2012-10-09 12:32:00 -04:00
2017-08-11 12:33:30 -04:00
$someCriteria [ $i ] -> setIgnoreCase ( $ignoreCase );
2012-10-09 12:32:00 -04:00
}
2017-08-11 12:33:30 -04:00
$criterion -> setDB ( $db );
2012-10-09 12:32:00 -04:00
$cri [ 'table' ] = $criterion -> table ;
$cri [ 'field' ] = $criterion -> column ;
$cri [ 'comparison' ] = $criterion -> comparison == '=' ? '==' : $criterion -> comparison ;
$cri [ 'value' ] = $criterion -> getValue ();
$sb = " " ;
$sb .= " \$ row[' " . $cri [ 'field' ] . " '] " . $cri [ 'comparison' ] . " ' " . $cri [ 'value' ] . " ' " ;
$params [] = $cri ;
//$criterion->appendPsTo($sb, $params);
$whereClause [] = $sb ;
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
}
// Unique from clause elements
2017-08-11 12:33:30 -04:00
$fromClause = array_unique ( $fromClause );
2012-10-09 12:32:00 -04:00
2017-08-11 12:33:30 -04:00
if ( ! empty ( $orderBy )) {
2012-10-09 12:32:00 -04:00
foreach ( $orderBy as $orderByColumn ) {
// Add function expression as-is.
2017-08-11 12:33:30 -04:00
if ( strpos ( $orderByColumn , '(' ) !== false ) {
2012-10-09 12:32:00 -04:00
$orderByClause [] = $orderByColumn ;
continue ;
}
// Split orderByColumn (i.e. "table.column DESC")
2017-08-11 12:33:30 -04:00
$dotPos = strpos ( $orderByColumn , '.' );
2012-10-09 12:32:00 -04:00
if ( $dotPos !== false ) {
2017-08-11 12:33:30 -04:00
$tableName = substr ( $orderByColumn , 0 , $dotPos );
$columnName = substr ( $orderByColumn , $dotPos + 1 );
2012-10-09 12:32:00 -04:00
} else {
$tableName = '' ;
$columnName = $orderByColumn ;
}
2017-08-11 12:33:30 -04:00
$spacePos = strpos ( $columnName , ' ' );
2012-10-09 12:32:00 -04:00
if ( $spacePos !== false ) {
2017-08-11 12:33:30 -04:00
$direction = substr ( $columnName , $spacePos );
$columnName = substr ( $columnName , 0 , $spacePos );
2012-10-09 12:32:00 -04:00
} else {
$direction = '' ;
}
2017-08-11 12:33:30 -04:00
$orderByClause [] = array ( 'columnName' => $columnName , 'direction' => $direction
2012-10-09 12:32:00 -04:00
);
}
}
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
// Build the SQL from the arrays we compiled
2017-08-11 12:33:30 -04:00
$sql = " SELECT " . ( $selectModifiers ? implode ( " " , $selectModifiers ) . " " : " " ) . implode ( " , " , $selectClause ) . " FROM " . $fromClause [ 0 ] . ( $whereClause ? " WHERE " . implode ( " AND " , $whereClause ) : " " ) . ( $groupByClause ? " GROUP BY " . implode ( " , " , $groupByClause ) : " " );
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
$dataSql [ 'selectClause' ] = $selectClause ;
$dataSql [ 'fromClause' ] = $fromClause ;
$dataSql [ 'whereClause' ] = $whereClause ;
$dataSql [ 'orderByClause' ] = $orderByClause ;
$dataSql [ 'sql' ] = $sql ;
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
return $dataSql ;
}
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
/**
* Method to do selects .
*
* @ param Criteria $criteria The Criteria object used to build the SELECT statement .
* @ param Connection $con
* @ return array Array of selected Objects
* @ throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException .
*/
2017-08-11 12:33:30 -04:00
public static function doSelect ( Criteria $criteria , $tableName , $con = null )
2012-10-09 12:32:00 -04:00
{
2017-08-11 12:33:30 -04:00
$dbMap = Propel :: getDatabaseMap ( $criteria -> getDbName ());
2012-10-09 12:32:00 -04:00
$stmt = null ;
try {
2017-08-11 12:33:30 -04:00
$params = array ();
$sql = self :: createSelectSql ( $criteria , $tableName , $params );
2012-10-09 12:32:00 -04:00
$sql [ 'params' ] = $params ;
2017-08-11 12:33:30 -04:00
$stmt = $con -> prepareStatement ( $sql );
2012-10-09 12:32:00 -04:00
//$stmt->setLimit($criteria->getLimit());
$sql [ 'limit' ] = $criteria -> getLimit ();
//$stmt->setOffset($criteria->getOffset());
$sql [ 'offset' ] = $criteria -> getOffset ();
//$rs = $stmt->executeQuery(ResultSet::FETCHMODE_NUM);
2017-08-11 12:33:30 -04:00
$rs = $con -> executeQuery ( $sql , ResultSet :: FETCHMODE_NUM );
2012-10-09 12:32:00 -04:00
} catch ( Exception $e ) {
if ( $stmt )
$stmt -> close ();
2017-08-11 12:33:30 -04:00
throw new PropelException ( $e );
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
return $rs ;
}
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
/**
* Prepares the Criteria object and uses the parent doSelect ()
* method to get a ResultSet .
*
* Use this method directly if you want to just get the resultset
* ( instead of an array of objects ) .
*
* @ param Criteria $criteria The Criteria object used to build the SELECT statement .
* @ param Connection $con the connection to use
* @ throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException .
* @ return ResultSet The resultset object with numerically - indexed fields .
* @ see BasePeer :: doSelect ()
*/
2017-08-11 12:33:30 -04:00
public static function doSelectRS ( Criteria $criteria , $con = null )
2012-10-09 12:32:00 -04:00
{
global $_DBArray ;
2017-08-11 12:33:30 -04:00
if ( ! isset ( $_DBArray )) {
2012-10-09 12:32:00 -04:00
$_DBArray = $_SESSION [ '_DBArray' ];
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
$tableName = $criteria -> getDBArrayTable ();
2017-08-11 12:33:30 -04:00
if ( ! isset ( $_DBArray [ $tableName ])) {
throw new Exception ( " Error: the table ' $tableName ' doesn't exist in DBArray " );
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
$arrayTable = $_DBArray [ $tableName ];
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
if ( $con === null ) {
2017-08-11 12:33:30 -04:00
$con = Propel :: getConnection ( self :: DATABASE_NAME );
2012-10-09 12:32:00 -04:00
}
2010-12-02 23:34:41 +00:00
2017-08-11 12:33:30 -04:00
if ( ! $criteria -> getSelectColumns ()) {
foreach ( array_keys ( $_DBArray [ $tableName ][ 0 ]) as $key => $val )
$criteria -> addSelectColumn ( $tableName . '.' . $val );
2012-10-09 12:32:00 -04:00
}
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
// Set the correct dbName
2017-08-11 12:33:30 -04:00
$criteria -> setDbName ( self :: DATABASE_NAME );
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
// BasePeer returns a Creole ResultSet, set to return
// rows indexed numerically.
2017-08-11 12:33:30 -04:00
return ArrayBasePeer :: doSelect ( $criteria , $tableName , $con );
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
/**
* The returned array will contain objects of the default type or
* objects that inherit from the default .
*
* @ throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException .
*/
2017-08-11 12:33:30 -04:00
public static function populateObjects ( ResultSet $rs )
2012-10-09 12:32:00 -04:00
{
2017-08-11 12:33:30 -04:00
$results = array ();
2012-10-09 12:32:00 -04:00
// set the class once to avoid overhead in the loop
$cls = ApplicationPeer :: getOMClass ();
2017-08-11 12:33:30 -04:00
$cls = Propel :: import ( $cls );
2012-10-09 12:32:00 -04:00
// populate the object(s)
while ( $rs -> next ()) {
$obj = new $cls ();
2017-08-11 12:33:30 -04:00
$obj -> hydrate ( $rs );
2012-10-09 12:32:00 -04:00
$results [] = $obj ;
}
return $results ;
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
/**
* Returns the TableMap related to this peer .
* This method is not needed for general use but a specific application could have a need .
*
* @ return TableMap
* @ throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException .
*/
2017-08-11 12:33:30 -04:00
public static function getTableMap ()
2012-10-09 12:32:00 -04:00
{
2017-08-11 12:33:30 -04:00
return Propel :: getDatabaseMap ( self :: DATABASE_NAME ) -> getTable ( self :: TABLE_NAME );
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
/**
* The class that the Peer will make instances of .
*
* This uses a dot - path notation which is tranalted into a path
* relative to a location on the PHP include_path .
* ( e . g . path . to . MyClass -> 'path/to/MyClass.php' )
*
* @ return string path . to . ClassName
*/
2017-08-11 12:33:30 -04:00
public static function getOMClass ()
2012-10-09 12:32:00 -04:00
{
return ApplicationPeer :: CLASS_DEFAULT ;
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
/**
* Method perform an INSERT on the database , given a Application or Criteria object .
*
* @ param mixed $values Criteria or Application object containing data that is used to create the INSERT statement .
* @ param Connection $con the connection to use
* @ return mixed The new primary key .
* @ throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException .
*/
2017-08-11 12:33:30 -04:00
public static function doInsert ( $values , $con = null )
2012-10-09 12:32:00 -04:00
{
if ( $con === null ) {
2017-08-11 12:33:30 -04:00
$con = Propel :: getConnection ( self :: DATABASE_NAME );
2012-10-09 12:32:00 -04:00
}
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
if ( $values instanceof Criteria ) {
$criteria = clone $values ; // rename for clarity
} else {
$criteria = $values -> buildCriteria (); // build Criteria from Application object
}
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
// Set the correct dbName
2017-08-11 12:33:30 -04:00
$criteria -> setDbName ( self :: DATABASE_NAME );
2012-10-09 12:32:00 -04:00
try {
// use transaction because $criteria could contain info
// for more than one table (I guess, conceivably)
$con -> begin ();
2017-08-11 12:33:30 -04:00
$pk = BasePeer :: doInsert ( $criteria , $con );
2012-10-09 12:32:00 -04:00
$con -> commit ();
} catch ( PropelException $e ) {
$con -> rollback ();
throw $e ;
}
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
return $pk ;
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
/**
* Method perform an UPDATE on the database , given a Application or Criteria object .
*
* @ param mixed $values Criteria or Application object containing data that is used to create the UPDATE statement .
* @ param Connection $con The connection to use ( specify Connection object to exert more control over transactions ) .
* @ return int The number of affected rows ( if supported by underlying database driver ) .
* @ throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException .
*/
2017-08-11 12:33:30 -04:00
public static function doUpdate ( $values , $con = null )
2012-10-09 12:32:00 -04:00
{
if ( $con === null ) {
2017-08-11 12:33:30 -04:00
$con = Propel :: getConnection ( self :: DATABASE_NAME );
2012-10-09 12:32:00 -04:00
}
2010-12-02 23:34:41 +00:00
2017-08-11 12:33:30 -04:00
$selectCriteria = new Criteria ( self :: DATABASE_NAME );
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
if ( $values instanceof Criteria ) {
$criteria = clone $values ; // rename for clarity
2010-12-02 23:34:41 +00:00
2017-08-11 12:33:30 -04:00
$comparison = $criteria -> getComparison ( ApplicationPeer :: APP_UID );
$selectCriteria -> add ( ApplicationPeer :: APP_UID , $criteria -> remove ( ApplicationPeer :: APP_UID ), $comparison );
2012-10-09 12:32:00 -04:00
} else { // $values is Application object
$criteria = $values -> buildCriteria (); // gets full criteria
$selectCriteria = $values -> buildPkeyCriteria (); // gets criteria w/ primary key(s)
}
// set the correct dbName
2017-08-11 12:33:30 -04:00
$criteria -> setDbName ( self :: DATABASE_NAME );
2012-10-09 12:32:00 -04:00
2017-08-11 12:33:30 -04:00
return BasePeer :: doUpdate ( $selectCriteria , $criteria , $con );
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
/**
* Method to DELETE all rows from the APPLICATION table .
*
* @ param Connection $con The connection to use
* @ return int The number of affected rows ( if supported by underlying database driver ) .
*/
2017-08-11 12:33:30 -04:00
public static function doDeleteAll ( $con = null )
2012-10-09 12:32:00 -04:00
{
if ( $con === null ) {
2017-08-11 12:33:30 -04:00
$con = Propel :: getConnection ( self :: DATABASE_NAME );
2012-10-09 12:32:00 -04:00
}
$affectedRows = 0 ; // initialize var to track total num of affected rows
try {
// use transaction because $criteria could contain info
// for more than one table or we could emulating ON DELETE CASCADE, etc.
$con -> begin ();
2017-08-11 12:33:30 -04:00
$affectedRows += BasePeer :: doDeleteAll ( ApplicationPeer :: TABLE_NAME , $con );
2012-10-09 12:32:00 -04:00
$con -> commit ();
return $affectedRows ;
} catch ( PropelException $e ) {
$con -> rollback ();
throw $e ;
}
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
/**
* Method perform a DELETE on the database , given a Application or Criteria object OR a primary key value .
*
* @ param mixed $values Criteria or Application object or primary key or array of primary keys
* which is used to create the DELETE statement
* @ param Connection $con the connection to use
* @ return int The number of affected rows ( if supported by underlying database driver ) . This includes CASCADE - related rows
* if supported by native driver or if emulated using Propel .
* @ throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException .
*/
2017-08-11 12:33:30 -04:00
public static function doDelete ( $values , $con = null )
2012-10-09 12:32:00 -04:00
{
if ( $con === null ) {
2017-08-11 12:33:30 -04:00
$con = Propel :: getConnection ( ApplicationPeer :: DATABASE_NAME );
2012-10-09 12:32:00 -04:00
}
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
if ( $values instanceof Criteria ) {
$criteria = clone $values ; // rename for clarity
} else {
if ( $values instanceof Application ) {
$criteria = $values -> buildPkeyCriteria ();
} else {
// it must be the primary key
2017-08-11 12:33:30 -04:00
$criteria = new Criteria ( self :: DATABASE_NAME );
$criteria -> add ( ApplicationPeer :: APP_UID , ( array ) $values , Criteria :: IN );
2012-10-09 12:32:00 -04:00
}
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
// Set the correct dbName
2017-08-11 12:33:30 -04:00
$criteria -> setDbName ( self :: DATABASE_NAME );
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
$affectedRows = 0 ; // initialize var to track total num of affected rows
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
try {
// use transaction because $criteria could contain info
// for more than one table or we could emulating ON DELETE CASCADE, etc.
$con -> begin ();
2017-08-11 12:33:30 -04:00
$affectedRows += BasePeer :: doDelete ( $criteria , $con );
2012-10-09 12:32:00 -04:00
$con -> commit ();
return $affectedRows ;
} catch ( PropelException $e ) {
$con -> rollback ();
throw $e ;
}
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
/**
* Validates all modified columns of given Application object .
* If parameter $columns is either a single column name or an array of column names
* than only those columns are validated .
*
* NOTICE : This does not apply to primary or foreign keys for now .
*
* @ param Application $obj The object to validate .
* @ param mixed $cols Column name or array of column names .
*
* @ return mixed TRUE if all columns are valid or the error message of the first invalid column .
*/
2017-08-11 12:33:30 -04:00
public static function doValidate ( Application $obj , $cols = null )
2012-10-09 12:32:00 -04:00
{
2017-08-11 12:33:30 -04:00
$columns = array ();
2012-10-09 12:32:00 -04:00
if ( $cols ) {
2017-08-11 12:33:30 -04:00
$dbMap = Propel :: getDatabaseMap ( ApplicationPeer :: DATABASE_NAME );
$tableMap = $dbMap -> getTable ( ApplicationPeer :: TABLE_NAME );
2012-10-09 12:32:00 -04:00
2017-08-11 12:33:30 -04:00
if ( ! is_array ( $cols )) {
$cols = array ( $cols
2012-10-09 12:32:00 -04:00
);
}
foreach ( $cols as $colName ) {
2017-08-11 12:33:30 -04:00
if ( $tableMap -> containsColumn ( $colName )) {
$get = 'get' . $tableMap -> getColumn ( $colName ) -> getPhpName ();
2012-10-09 12:32:00 -04:00
$columns [ $colName ] = $obj -> $get ();
}
}
} else {
2017-08-11 12:33:30 -04:00
if ( $obj -> isNew () || $obj -> isColumnModified ( ApplicationPeer :: APP_STATUS ))
2012-10-09 12:32:00 -04:00
$columns [ ApplicationPeer :: APP_STATUS ] = $obj -> getAppStatus ();
}
2017-08-11 12:33:30 -04:00
return BasePeer :: doValidate ( ApplicationPeer :: DATABASE_NAME , ApplicationPeer :: TABLE_NAME , $columns );
2012-10-09 12:32:00 -04:00
}
2010-12-02 23:34:41 +00:00
2012-10-09 12:32:00 -04:00
/**
* Retrieve a single object by pkey .
*
* @ param mixed $pk the primary key .
* @ param Connection $con the connection to use
* @ return Application
*/
2017-08-11 12:33:30 -04:00
public static function retrieveByPK ( $pk , $con = null )
2012-10-09 12:32:00 -04:00
{
if ( $con === null ) {
2017-08-11 12:33:30 -04:00
$con = Propel :: getConnection ( self :: DATABASE_NAME );
2012-10-09 12:32:00 -04:00
}
2010-12-02 23:34:41 +00:00
2017-08-11 12:33:30 -04:00
$criteria = new Criteria ( ApplicationPeer :: DATABASE_NAME );
2010-12-02 23:34:41 +00:00
2017-08-11 12:33:30 -04:00
$criteria -> add ( ApplicationPeer :: APP_UID , $pk );
2010-12-02 23:34:41 +00:00
2017-08-11 12:33:30 -04:00
$v = ApplicationPeer :: doSelect ( $criteria , $con );
2010-12-02 23:34:41 +00:00
2017-08-11 12:33:30 -04:00
return ! empty ( $v ) > 0 ? $v [ 0 ] : null ;
2010-12-02 23:34:41 +00:00
}
2012-10-09 12:32:00 -04:00
/**
* Retrieve multiple objects by pkey .
*
* @ param array $pks List of primary keys
* @ param Connection $con the connection to use
* @ throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException .
*/
2017-08-11 12:33:30 -04:00
public static function retrieveByPKs ( $pks , $con = null )
2012-10-09 12:32:00 -04:00
{
if ( $con === null ) {
2017-08-11 12:33:30 -04:00
$con = Propel :: getConnection ( self :: DATABASE_NAME );
2012-10-09 12:32:00 -04:00
}
$objs = null ;
2017-08-11 12:33:30 -04:00
if ( empty ( $pks )) {
$objs = array ();
2012-10-09 12:32:00 -04:00
} else {
$criteria = new Criteria ();
2017-08-11 12:33:30 -04:00
$criteria -> add ( ApplicationPeer :: APP_UID , $pks , Criteria :: IN );
$objs = ApplicationPeer :: doSelect ( $criteria , $con );
2012-10-09 12:32:00 -04:00
}
return $objs ;
2010-12-02 23:34:41 +00:00
}
} // BaseApplicationPeer