/**
  * @see	\wbb\data\DatabaseObjectList::__construct()
  */
 public function __construct()
 {
     parent::__construct();
     // get object types
     $this->fileObjectTypeID = FileModificationLogHandler::getInstance()->getObjectType()->objectTypeID;
     $this->entryObjectTypeID = EntryModificationLogHandler::getInstance()->getObjectType()->objectTypeID;
 }
 /**
  * Initializes the entry list modification log list.
  * 
  * @param	array<integer>		$entryIDs
  * @param	string			$action
  */
 public function setEntryData(array $entryIDs, $action = '')
 {
     $this->getConditionBuilder()->add("objectTypeID = ?", array(EntryModificationLogHandler::getInstance()->getObjectType()->objectTypeID));
     $this->getConditionBuilder()->add("objectID IN (?)", array($entryIDs));
     if (!empty($action)) {
         $this->getConditionBuilder()->add("action = ?", array($action));
     }
 }
 /**
  * Restores given entries.
  * 
  * @return	array<array>
  */
 public function restore()
 {
     $entryIDs = array();
     foreach ($this->objects as $entry) {
         $entry->update(array('deleteTime' => 0, 'isDeleted' => 0));
         $entryIDs[] = $entry->entryID;
         $this->addEntryData($entry->getDecoratedObject(), 'isDeleted', 0);
         EntryModificationLogHandler::getInstance()->restore($entry->getDecoratedObject());
     }
     $this->restoreFiles($entryIDs);
     EntryEditor::rebuildEntryData($entryIDs);
     $this->unmarkItems();
     UserStorageHandler::getInstance()->resetAll('filebaseUnreadEntries');
     UserStorageHandler::getInstance()->resetAll('filebaseUnreadWatchedEntries');
     return $this->getEntryData();
 }
 /**
  * Restores given files.
  */
 public function restore()
 {
     // update entries
     $fileIDs = $entryIDs = array();
     foreach ($this->objects as $file) {
         // ignore files already restored
         if (!$file->isDeleted) {
             continue;
         }
         $parameters = array();
         $entryEditor = new EntryEditor($file->getEntry());
         $entryIDs[] = $file->entryID;
         $fileIDs[] = $file->fileID;
         // restore entry if at least one file is accessible
         if ($entryEditor->isDeleted) {
             $parameters['deleteTime'] = 0;
             $parameters['isDeleted'] = 0;
             EntryModificationLogHandler::getInstance()->restore($file->getEntry());
             $this->addEntryData($entryEditor->entryID, 'isDeleted', 0);
             $this->addEntryData($entryEditor->entryID, 'ignoreFiles', 1);
         }
         // update entry
         if (!empty($parameters)) {
             $entryEditor->update($parameters);
         }
         // restore file
         $file->update(array('deleteTime' => 0, 'isDeleted' => 0));
         FileModificationLogHandler::getInstance()->restore($file->getDecoratedObject());
         if (isset($this->parameters['unmarkItems'])) {
             $fileIDs[] = $file->fileID;
         }
         $this->addFileData($file->getDecoratedObject(), 'isDeleted', 0);
     }
     if (!empty($entryIDs)) {
         $entryIDs = array_unique($entryIDs);
         EntryEditor::rebuildEntryData($entryIDs);
     }
     if (!empty($fileIDs)) {
         $this->unmarkItems($fileIDs);
     }
     return $this->getFileData();
 }