+ die(__METHOD__.": Unfinished!");
+ }
+
+ /**
+ * Adds an update request to the database result for writing it to the
+ * database layer
+ *
+ * @param $criteriaInstance An instance of a updateable criteria
+ * @return void
+ * @throws ResultUpdateException If no result was updated
+ */
+ public function add2UpdateQueue (LocalUpdateCriteria $criteriaInstance) {
+ // Rewind the pointer
+ $this->rewind();
+
+ // Get search criteria
+ $searchInstance = $criteriaInstance->getSearchInstance();
+
+ // And start looking for the result
+ $foundEntries = 0;
+ while (($this->valid()) && ($foundEntries < $searchInstance->getLimit())) {
+ // Get next entry
+ $this->next();
+ $currentEntry = $this->current();
+
+ // Is this entry found?
+ if ($searchInstance->ifEntryMatches($currentEntry)) {
+ // Update this entry
+ $this->updateCurrentEntryByCriteria($criteriaInstance);
+
+ // Count one up
+ $foundEntries++;
+ } // 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);
+ }
+
+ /**
+ * Setter for affected rows
+ *
+ * @param $rows Number of affected rows
+ * @return void
+ */
+ public final function setAffectedRows ($rows) {
+ $this->affectedRows = $rows;
+ }
+
+ /**
+ * Getter for affected rows
+ *
+ * @return $rows Number of affected rows
+ */
+ public final function getAffectedRows () {
+ return $this->affectedRows;
+ }
+
+ /**
+ * Checks wether we have out-dated entries or not
+ *
+ * @return $needsUpdate Wether we have out-dated entries
+ */
+ public function ifDataNeedsFlush () {
+ $needsUpdate = (count($this->outDated) > 0);
+ return $needsUpdate;
+ }
+
+ /**
+ * Adds registration elements to a given dataset instance
+ *
+ * @param $criteriaInstance An instance of a storeable criteria
+ * @return void
+ */
+ public function addElementsToDataSet (StoreableCriteria $criteriaInstance) {
+ // Rewind the pointer
+ $this->rewind();
+
+ // Walk through all entries
+ while ($this->valid()) {
+ // Get next entry
+ $this->next();
+ $currentEntry = $this->current();
+
+ // Walk only through out-dated columns
+ foreach ($this->outDated as $key=>$dummy) {
+ // Does this key exist?
+ //* DEBUG: */ echo "outDated: {$key}<br />\n";
+ if (isset($currentEntry[$key])) {
+ // Then update it
+ $criteriaInstance->addCriteria($key, $currentEntry[$key]);
+ } // END - foreach
+ } // END - foreach
+ } // END - while