X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=inc%2Fclasses%2Fmain%2Fresult%2Fclass_DatabaseResult.php;h=4b2c073b5a685398f731ede03de978cba0a50079;hb=e6352b71e923a760d626d6fd32f6223e4c8740fd;hp=94fe3b5deff55a2f96fac4aaba5bde59197b32a0;hpb=c6d73b0e3246efc824cb98338d4be7ee5bc9f308;p=core.git diff --git a/inc/classes/main/result/class_DatabaseResult.php b/inc/classes/main/result/class_DatabaseResult.php index 94fe3b5d..4b2c073b 100644 --- a/inc/classes/main/result/class_DatabaseResult.php +++ b/inc/classes/main/result/class_DatabaseResult.php @@ -2,11 +2,11 @@ /** * A database result class * - * @author Roland Haeder + * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2013 Core Developer Team * @license GNU GPL 3.0 or any newer version - * @link http://www.ship-simu.org + * @link http://www.shipsimu.org * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -34,7 +34,7 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up /** * Current row */ - private $currentRow = null; + private $currentRow = NULL; /** * Result array @@ -54,7 +54,7 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up /** * Found value */ - private $foundValue = ""; + private $foundValue = ''; /** * Protected constructor @@ -64,10 +64,6 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up protected function __construct () { // Call parent constructor parent::__construct(__CLASS__); - - // Clean up a little - $this->removeNumberFormaters(); - $this->removeSystemArray(); } /** @@ -76,13 +72,16 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up * @param $resultArray The array holding the result from query * @return $resultInstance An instance of this class */ - public final static function createDatabaseResult (array $resultArray) { + public static final function createDatabaseResult (array $resultArray) { // Get a new instance $resultInstance = new DatabaseResult(); // Set the result array $resultInstance->setResultArray($resultArray); + // Set affected rows + $resultInstance->setAffectedRows(count($resultArray[BaseDatabaseBackend::RESULT_INDEX_ROWS])); + // Return the instance return $resultInstance; } @@ -110,7 +109,7 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up // Now get the update criteria array and update all entries foreach ($updateInstance->getUpdateCriteria() as $criteriaKey => $criteriaValue) { // Update data - $this->resultArray['rows'][$entryKey][$criteriaKey] = $criteriaValue; + $this->resultArray[BaseDatabaseBackend::RESULT_INDEX_ROWS][$entryKey][$criteriaKey] = $criteriaValue; // Mark it as out-dated $this->outDated[$criteriaKey] = 1; @@ -121,18 +120,18 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up * "Iterator" method next() to advance to the next valid entry. This method * does also check if result is invalid * - * @return $nextValid Wether the next entry is valid + * @return $nextValid Whether the next entry is valid */ public function next () { // Default is not valid - $nextValid = false; + $nextValid = FALSE; // Is the result valid? if ($this->valid()) { // Next entry found, so count one up and cache it $this->currentPos++; - $this->currentRow = $this->resultArray['rows'][$this->currentPos]; - $nextValid = true; + $this->currentRow = $this->resultArray[BaseDatabaseBackend::RESULT_INDEX_ROWS][$this->currentPos]; + $nextValid = TRUE; } // END - if // Return the result @@ -150,7 +149,7 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up $this->rewind(); // Search for the entry - while ($this->currentPos < $index && ($this->valid())) { + while (($this->currentPos < $index) && ($this->valid())) { // Continue on $this->next(); } // END - while @@ -163,12 +162,12 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up */ public function current () { // Default is not found - $current = null; + $current = NULL; // Does the current enty exist? - if (isset($this->resultArray['rows'][$this->currentPos])) { + if (isset($this->resultArray[BaseDatabaseBackend::RESULT_INDEX_ROWS][$this->currentPos])) { // Then get it - $current = $this->resultArray['rows'][$this->currentPos]; + $current = $this->resultArray[BaseDatabaseBackend::RESULT_INDEX_ROWS][$this->currentPos]; } // END - if // Return the result @@ -178,16 +177,19 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up /** * Checks if next() and rewind will give a valid result * - * @return $isValid Wether the next/rewind entry is valid + * @return $isValid Whether the next/rewind entry is valid */ public function valid () { // By default nothing is valid - $isValid = false; + $isValid = FALSE; + + // Debug message + //*NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . '] this->currentPos=' . $this->currentPos); - // Check if - if (($this->ifStatusIsOkay()) && (isset($this->resultArray['rows'][($this->currentPos + 1)])) && (isset($this->resultArray['rows'][0]))) { + // Check if all is fine ... + if (($this->ifStatusIsOkay()) && (isset($this->resultArray[BaseDatabaseBackend::RESULT_INDEX_ROWS][($this->currentPos + 1)])) && (isset($this->resultArray[BaseDatabaseBackend::RESULT_INDEX_ROWS][0]))) { // All fine! - $isValid = true; + $isValid = TRUE; } // END - if // Return the result @@ -195,12 +197,24 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up } /** - * Determines wether the status of the query was fine ("ok") + * Returns count of entries * - * @return $ifStatusOkay Wether the status of the query was okay + * @return $isValid Whether the next/rewind entry is valid + */ + public function count () { + // Return it + return count($this->resultArray[BaseDatabaseBackend::RESULT_INDEX_ROWS]); + } + + /** + * Determines whether the status of the query was fine (BaseDatabaseBackend::RESULT_OKAY) + * + * @return $ifStatusOkay Whether the status of the query was okay */ public function ifStatusIsOkay () { - return ((isset($this->resultArray['status'])) && ($this->resultArray['status'] === "ok")); + $ifStatusOkay = ((isset($this->resultArray[BaseDatabaseBackend::RESULT_INDEX_STATUS])) && ($this->resultArray[BaseDatabaseBackend::RESULT_INDEX_STATUS] === BaseDatabaseBackend::RESULT_OKAY)); + //*NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . '] ifStatusOkay=' . intval($ifStatusOkay)); + return $ifStatusOkay; } /** @@ -230,7 +244,7 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up * @todo 0% done */ public function searchEntry (LocalSearchCriteria $criteriaInstance) { - die(__METHOD__.": Unfinished!"); + $this->debugBackTrace('[' . '[' . __METHOD__ . ':' . __LINE__ . ']: Unfinished!'); } /** @@ -265,17 +279,17 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up } // END - if } // END - while - // Set affected rows - $this->setAffectedRows($foundEntries); - // If no entry is found/updated throw an exception if ($foundEntries == 0) { // Throw an exception here throw new ResultUpdateException($this, self::EXCEPTION_RESULT_UPDATE_FAILED); } // END - if - // Set search instance - $this->setSearchInstance($searchInstance); + // Set affected rows + $this->setAffectedRows($foundEntries); + + // Set update instance + $this->setUpdateInstance($criteriaInstance); } /** @@ -307,9 +321,9 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up } /** - * Checks wether we have out-dated entries or not + * Checks whether we have out-dated entries or not * - * @return $needsUpdate Wether we have out-dated entries + * @return $needsUpdate Whether we have out-dated entries */ public function ifDataNeedsFlush () { $needsUpdate = (count($this->outDated) > 0); @@ -319,10 +333,11 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up /** * Adds registration elements to a given dataset instance * - * @param $criteriaInstance An instance of a storeable criteria + * @param $criteriaInstance An instance of a StoreableCriteria class + * @param $requestInstance An instance of a Requestable class * @return void */ - public function addElementsToDataSet (StoreableCriteria $criteriaInstance) { + public function addElementsToDataSet (StoreableCriteria $criteriaInstance, Requestable $requestInstance = NULL) { // Walk only through out-dated columns foreach ($this->outDated as $key => $dummy) { // Does this key exist? @@ -338,11 +353,11 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up * Find a key inside the result array * * @param $key The key we shall find - * @return $found Wether the key was found or not + * @return $found Whether the key was found or not */ public function find ($key) { // By default nothing is found - $found = false; + $found = FALSE; // Rewind the pointer $this->rewind(); @@ -358,7 +373,7 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up // Is the element there? if (isset($currentEntry[$key])) { // Okay, found! - $found = true; + $found = TRUE; // So "cache" it $this->foundValue = $currentEntry[$key]; @@ -380,9 +395,9 @@ class DatabaseResult extends BaseFrameworkSystem implements SearchableResult, Up * @para $callBack Call-back object for setting the index; * 0=object instance,1=method name * @return void -4 * @todo Find a caching way without modifying the result array + * @todo Find a caching way without modifying the result array */ - public function solveResultIndex ($databaseColumn, BaseDatabaseWrapper $wrapperInstance, array $callBack) { + public function solveResultIndex ($databaseColumn, DatabaseWrapper $wrapperInstance, array $callBack) { // By default nothing is found $indexValue = 0;