*
* This class serializes objects and saves them to local files.
*
- * @author Roland Haeder <webmaster@mxchange.org>
- * @version 0.3.0
+ * @author Roland Haeder <webmaster@ship-simu.org>
+ * @version 0.0.0
* @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software
* @license GNU GPL 3.0 or any newer version
- * @link http://www.mxchange.org
+ * @link http://www.ship-simu.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
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontendInterface {
/**
*
* @return void
*/
- private function __construct() {
+ protected function __construct() {
// Call parent constructor
- parent::constructor(__CLASS__);
+ parent::__construct(__CLASS__);
// Set description
- $this->setPartDescr("Dateidatenbankschicht");
+ $this->setObjectDescription("Class for local file databases");
// Create unique ID
$this->createUniqueID();
*
* @param $savePath The local file path string
* @param $ioInstance The input/output handler. This
- * should be FileIOHandler
+ * should be FileIoHandler
* @return $dbInstance An instance of LocalFileDatabase
* @throws SavePathIsEmptyException If the given save path is an
* empty string
* @throws SavePathWriteProtectedException If the save path is write-
* protected
*/
- public final static function createLocalFileDatabase ($savePath, FileIOHandler $ioInstance) {
+ public final static function createLocalFileDatabase ($savePath, FileIoHandler $ioInstance) {
// Get an instance
$dbInstance = new LocalFileDatabase();
throw new SavePathWriteProtectedException($savePath, self::EXCEPTION_WRITE_PROTECED_PATH);
}
- // Debug output
- if (defined('DEBUG_DATABASE')) $dbInstance->getDebugInstance()->output(sprintf("[%s:] Es werden lokale Dateien zum Speichern von Objekten verwendet.<br />\n",
- $dbInstance->__toString()
- ));
-
// Set save path and IO instance
$dbInstance->setSavePath($savePath);
- $dbInstance->setFileIOInstance($ioInstance);
+ $dbInstance->setFileIoInstance($ioInstance);
// Return database instance
return $dbInstance;
// Secure string
$savePath = (string) $savePath;
- // Debug message
- if ((defined('DEBUG_DATABASE')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:] Lokaler Speicherpfad <strong>%s</strong> wird verwendet.<br />\n",
- $this->__toString(),
- $savePath
- ));
-
// Set save path
$this->savePath = $savePath;
}
throw new MissingMethodException(array($object, '__toString'), self::EXCEPTION_MISSING_METHOD);
}
- // Debug message
- if ((defined('DEBUG_DATABASE')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:] Das Objekt <strong>%s</strong> soll in eine lokale Datei gespeichert werden.<br />\n",
- $this->__toString(),
- $object->__toString()
- ));
-
// Get a string containing the serialized object. We cannot exchange
// $this and $object here because $object does not need to worry
// about it's limitations... ;-)
$serialized = $this->serializeObject($object);
- // Debug message
- if ((defined('DEBUG_DATABASE')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:] Das Objekt <strong>%s</strong> ist nach der Serialisierung <strong>%s</strong> Byte gross.<br />\n",
- $this->__toString(),
- $object->__toString(),
- strlen($serialized)
- ));
-
// Get a path name plus file name and append the extension
$fqfn = $this->getSavePath() . $object->getPathFileNameFromObject() . "." . $this->getFileExtension();
// Save the file to disc we don't care here if the path is there,
// this must be done in later methods.
- $this->getFileIOInstance()->saveFile($fqfn, array($this->getCompressorChannel()->getCompressorExtension(), $serialized));
+ $this->getFileIoInstance()->saveFile($fqfn, array($this->getCompressorChannel()->getCompressorExtension(), $serialized));
}
/**
$this->setLastFile($fqfn);
// Get instance for file handler
- $inputHandler = $this->getFileIOInstance();
+ $inputHandler = $this->getFileIoInstance();
// Try to read from it. This makes it sure that the file is
// readable and a valid database file
* @param $fqfn The FQFN of the last read file
* @return void
*/
- private function setLastFile ($fqfn) {
+ private final function setLastFile ($fqfn) {
// Cast string
$fqfn = (string) $fqfn;
$this->lastFile = $fqfn;
* @param $contents An array with header and data elements
* @return void
*/
- private function setLastFileContents ($contents) {
+ private final function setLastFileContents ($contents) {
// Cast array
$contents = (array) $contents;
$this->lastContents = $contents;
return $this->lastContents;
}
+ /**
+ * Getter for file extension
+ *
+ * @return $fileExtension The array with elements 'header' and 'data'.
+ */
+ public final function getFileExtension () {
+ return $this->fileExtension;
+ }
+
/**
* Get cached (last fetched) data from the local file database
*
*/
public final function getObjectFromCachedData ($uniqueID) {
// Get instance for file handler
- $inputHandler = $this->getFileIOInstance();
+ $inputHandler = $this->getFileIoInstance();
// Get last file's name and contents
$fqfn = $this->repairFQFN($this->getLastFile(), $uniqueID);