/**
  * updateSystemFields
  *
  * @param KVDdom_DomainObject $domainObject
  * @param string $gebruiker
  * @return void
  */
 public function updateSystemFields(KVDdom_DomainObject $domainObject, $gebruiker = null)
 {
     if (!$domainObject->hasSystemFields()) {
         throw new LogicException('Kan de systemFields van een object dat geen systemFields heeft niet updaten.');
     }
     $domainObject->getSystemFields()->setUpdated($gebruiker);
 }
 /**
  * Verwijder een bepaald DomainObject uit de databank.
  *
  * Implementeert Optimist Offline Locking, indien het object gewijzigd is door iemand anders sinds het geladen werd wordt er een Exception gegenereerd.
  * @param KVDdom_DomainObject $domainObject Het DomainObject dat moet verwijderd worden.
  * @throws KVDdom_ConcurrencyException
  */
 public function delete($domainObject)
 {
     try {
         $currentVersie = $domainObject->getSystemFields()->getVersie();
         $this->LogInsert($domainObject->getId());
         $stmt = $this->_conn->prepare($this->getDeleteStatement());
         $this->doSetUpdateWhere($stmt, $domainObject->getId(), $currentVersie, 1);
         $stmt->execute();
     } catch (PDOException $e) {
         throw KVDdom_ExceptionConvertor::convert($e, $domainObject);
     }
     if ($stmt->rowCount() === 0) {
         $message = 'Het object dat u probeert te verwijderen is gewijzigd sinds u het geopend hebt. U hebt geprobeerd om versie ' . $currentVersie . ' te verwijderen.';
         throw new KVDdom_ConcurrencyException($message, $domainObject);
     }
 }
 /**
  * deleteDependentCollection
  *
  * @param KVDdom_DomainObject   $owner
  * @param string                $sql            Een sql statement dat de afhankelijke collectie verwijderd. Er wordt verwacht dat
  *                                              er twee parameters beschikbaar zijn, de eerste bevat het id van de eigenaar,
  *                                              de tweede het huidige versienummer.
  * @param integer               $owerIdType     Een PDO constante
  * @return void
  */
 protected function deleteDependentCollection(KVDdom_DomainObject $owner, $sql, $owerIdType = PDO::PARAM_INT)
 {
     $stmt = $this->_conn->prepare($sql);
     $stmt->bindValue(1, $owner->getId(), PDO::PARAM_INT);
     $stmt->bindValue(2, $owner->getSystemFields()->getVersie(), PDO::PARAM_INT);
     $stmt->execute();
 }