From a8b3ebe8f62c3888b216d827c1c5dcba8a47d4e1 Mon Sep 17 00:00:00 2001 From: wei <> Date: Sun, 26 Nov 2006 22:15:58 +0000 Subject: Adding active record implementation. --- .../ActiveRecord/Vendor/TDbMetaDataInspector.php | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 framework/Data/ActiveRecord/Vendor/TDbMetaDataInspector.php (limited to 'framework/Data/ActiveRecord/Vendor/TDbMetaDataInspector.php') diff --git a/framework/Data/ActiveRecord/Vendor/TDbMetaDataInspector.php b/framework/Data/ActiveRecord/Vendor/TDbMetaDataInspector.php new file mode 100644 index 00000000..ee7f339e --- /dev/null +++ b/framework/Data/ActiveRecord/Vendor/TDbMetaDataInspector.php @@ -0,0 +1,79 @@ + + * @version $Id$ + * @package System.Data.ActiveRecord.Vendor + */ + +/** + * Base class for database meta data inspectors. + * + * @author Wei Zhuo + * @version $Id$ + * @package System.Data.ActiveRecord.Vendor + * @since 3.1 + */ +abstract class TDbMetaDataInspector +{ + private $_connection; + + public function __construct($conn) + { + $this->setDbConnection($conn); + } + + /** + * @param TDbConnection database connection. + */ + public function setDbConnection($conn) + { + $this->_connection=$conn; + } + + /** + * @return TDbConnection database connection. + */ + public function getDbConnection() + { + return $this->_connection; + } + + /** + * @param string table name + * @return TDbMetaData table meta data. + */ + public function getTableMetaData($table) + { + $keys = $this->getConstraintKeys($table); + $columns = $this->getColumnDefinitions($table); + return $this->createMetaData($table,$columns,$keys['primary'], $keys['foreign']); + } + + /** + * Get the column definitions for given table. + * @param string table name. + * @return array column name value pairs of column meta data. + */ + abstract protected function getColumnDefinitions($table); + + /** + * Gets the primary and foreign key details for the given table. + * @param string table name. + * @return array key value pairs with keys 'primary' and 'foreign'. + */ + abstract protected function getConstraintKeys($table); + + /** + * Create a new instance of meta data. + * @param string table name + * @param array column meta data + * @param array primary key meta data + * @param array foreign key meta data. + * @return TDbMetaData table meta data. + */ + abstract protected function createMetaData($table, $columns, $primary, $foreign); +} + +?> \ No newline at end of file -- cgit v1.2.3