From 1496abee24c7231c414d05d393bc31db2ea3a73a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Fri, 18 May 2012 18:54:24 +0000 Subject: [PATCH] Moved last exception thing to BaseDatabaseFrontend so it will become available for all other database 'frontends' --- .../database/class_BaseDatabaseFrontend.php | 34 +++++++++++++++++++ .../databases/class_LocalFileDatabase.php | 32 +++-------------- 2 files changed, 38 insertions(+), 28 deletions(-) diff --git a/inc/classes/main/database/class_BaseDatabaseFrontend.php b/inc/classes/main/database/class_BaseDatabaseFrontend.php index ffdd69cf..820e4c3a 100644 --- a/inc/classes/main/database/class_BaseDatabaseFrontend.php +++ b/inc/classes/main/database/class_BaseDatabaseFrontend.php @@ -31,6 +31,11 @@ abstract class BaseDatabaseFrontend extends BaseFrameworkSystem implements Datab const RESULT_INDEX_STATUS = 'status'; const RESULT_INDEX_EXCEPTION = 'exception'; + /** + * Last thrown exception or NULL if all is fine + */ + private $lastException = NULL; + /** * Protected constructor * @@ -41,6 +46,35 @@ abstract class BaseDatabaseFrontend extends BaseFrameworkSystem implements Datab // Call parent constructor parent::__construct($className); } + + /** + * Getter for last exception + * + * @return $lastException Last thrown exception + */ + public final function getLastException () { + return $this->lastException; + } + + /** + * Setter for last exception + * + * @param $lastException Last thrown exception + * @return void + */ + public final function setLastException (FrameworkException $exceptionInstance) { + $this->lastException = $exceptionInstance; + } + + /** + * Reset the last exception instance. This should be done after a "query" + * was completed without any errors. + * + * @return void + */ + protected final function resetLastException () { + $this->lastException = NULL; + } } // [EOF] diff --git a/inc/classes/main/database/databases/class_LocalFileDatabase.php b/inc/classes/main/database/databases/class_LocalFileDatabase.php index d104151d..b093a9d8 100644 --- a/inc/classes/main/database/databases/class_LocalFileDatabase.php +++ b/inc/classes/main/database/databases/class_LocalFileDatabase.php @@ -52,11 +52,6 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend */ private $alreadyConnected = false; - /** - * Last exception - */ - private $lastException = NULL; - /** * Table information array */ @@ -101,15 +96,6 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend return $databaseInstance; } - /** - * Getter for last exception - * - * @return $lastException Last thrown exception - */ - public final function getLastException () { - return $this->lastException; - } - /** * Setter for the last read file * @@ -121,16 +107,6 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend $this->lastFile = (string) $fqfn; } - /** - * Reset the last exception instance. This should be done after a "query" - * was completed without any errors. - * - * @return void - */ - private final function resetLastException () { - $this->lastException = NULL; - } - /** * Getter for last read file * @@ -412,13 +388,13 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend $this->resetLastException(); } catch (PathIsNoDirectoryException $e) { // Path not found means "table not found" for real databases... - $this->lastException = $e; + $this->setLastException($e); // So throw an SqlException here with faked error message throw new SqlException (array($this, sprintf("Table '%s' not found", $tableName), self::DB_CODE_TABLE_MISSING), self::EXCEPTION_SQL_QUERY); } catch (FrameworkException $e) { // Catch all exceptions and store them in last error - $this->lastException = $e; + $this->setLastException($e); } // Return the gathered result @@ -448,7 +424,7 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend $this->resetLastException(); } catch (FrameworkException $e) { // Catch all exceptions and store them in last error - $this->lastException = $e; + $this->setLastException($e); // Throw an SQL exception throw new SqlException(array($this, sprintf("Cannot write data to table '%s', is the table created?", $dataSetInstance->getTableName()), self::DB_CODE_TABLE_UNWRITEABLE), self::EXCEPTION_SQL_QUERY); @@ -538,7 +514,7 @@ class LocalFileDatabase extends BaseDatabaseFrontend implements DatabaseFrontend $this->resetLastException(); } catch (FrameworkException $e) { // Catch all exceptions and store them in last error - $this->lastException = $e; + $this->setLastException($e); // Throw an SQL exception throw new SqlException(array($this, sprintf("Cannot write data to table '%s', is the table created?", $dataSetInstance->getTableName()), self::DB_CODE_TABLE_UNWRITEABLE), self::EXCEPTION_SQL_QUERY); -- 2.30.2