diff --git a/core/trunk/core/tests/class/DataAccessService_Database.php b/core/trunk/core/tests/class/DataAccessService_Database.php index c0c215c59ed3bb1ef343687735146b8376cb1c8a..92e7ced6006056bd552c8dbcda6493aece0424f6 100644 --- a/core/trunk/core/tests/class/DataAccessService_Database.php +++ b/core/trunk/core/tests/class/DataAccessService_Database.php @@ -1,5 +1,6 @@ <?php class DataAccessService_Database + { private $connection; @@ -7,11 +8,13 @@ class DataAccessService_Database public $tables = array(); public $relations = array(); private $limit; + private $db; public function DataAccessService_Database($schema='public', $limit=500) { $this->schema = $schema; $this->limit = $limit; + $this->db = new dbquery(); } public function addTable($tableName) @@ -90,11 +93,10 @@ class DataAccessService_Database //echo "<pre>DAS = " . print_r($this,true) . "</pre>"; //echo "<pre>QUERY = " . $query . "</pre>"; - $db = new dbquery(); - $db->query($query); + $this->db->query($query); $results = array(); - while($result = $db->fetch_assoc()) { + while($result = $this->db->fetch_assoc()) { $results[] = $result; } return $results; @@ -131,9 +133,8 @@ class DataAccessService_Database $query .= " VALUES (" . $insertExpression . ")"; //echo "<pre>DAS = " . print_r($this,true) . "</pre>"; - //echo "<pre>QUERY = " . $query . "</pre>"; - $db = new dbquery(); - $db->query($query); + echo "<pre>QUERY = " . $query . "</pre>"; + //$this->db->query($query); $this->saveChildObjects($dataObject); @@ -156,9 +157,8 @@ class DataAccessService_Database $query .= " WHERE " . $keyExpression; //echo "<pre>DAS = " . print_r($this,true) . "</pre>"; - //echo "<pre>QUERY = " . $query . "</pre>"; - $db = new dbquery(); - $db->query($query); + echo "<pre>QUERY = " . $query . "</pre>"; + //$this->db->query($query); $this->saveChildObjects($dataObject); diff --git a/core/trunk/core/tests/class/DataObject.php b/core/trunk/core/tests/class/DataObject.php index e9a90185ed418f72efccf4f1a49921bbdd796cb2..195298863e750c014af8641d30361e78740c97e9 100644 --- a/core/trunk/core/tests/class/DataObject.php +++ b/core/trunk/core/tests/class/DataObject.php @@ -135,11 +135,6 @@ class DataObject public function beginLogging() { $this->changeLog = new DataObjectChangeLog(); - $childObjects = $this->children; - for($i=0; $i<count($childObjects); $i++) { - $childObject = $childObjects[$i]; - $childObject->beginLogging(); - } } public function logCreation() @@ -147,6 +142,11 @@ class DataObject $this->changeLog->logCreation($this->name); } + public function logRead() + { + $this->changeLog->logRead($this->name); + } + //************************************************************************* // XML //************************************************************************* @@ -211,7 +211,6 @@ class DataObject } private function formatXmlString($xml) { - // add marker linefeeds to aid the pretty-tokeniser (adds a linefeed between all tag-end boundaries) $xml = preg_replace('/(>)(<)(\/*)/', "$1\n$2$3", $xml); diff --git a/core/trunk/core/tests/class/DataObjectArray.php b/core/trunk/core/tests/class/DataObjectArray.php index ceaa87a022dc012df6dd529385b030bbd8172b46..d10bb8e0f70ee3bc6eb4e0b1ea63faa98e0ca6eb 100644 --- a/core/trunk/core/tests/class/DataObjectArray.php +++ b/core/trunk/core/tests/class/DataObjectArray.php @@ -76,11 +76,6 @@ class DataObjectArray public function beginLogging() { $this->changeLog = new DataObjectChangeLog(); - $childObjects = $this->children; - for($i=0; $i<count($childObjects); $i++) { - $childObject = $childObjects[$i]; - $childObject->beginLogging(); - } } public function logCreation() diff --git a/core/trunk/core/tests/class/DataObjectChangeLog.php b/core/trunk/core/tests/class/DataObjectChangeLog.php index 5d7bf8e6ae377d8f461a58e00eb932ef2b66d0f8..d4b75e35b9a2a2eba860a3a52333a378ba6125cb 100644 --- a/core/trunk/core/tests/class/DataObjectChangeLog.php +++ b/core/trunk/core/tests/class/DataObjectChangeLog.php @@ -23,6 +23,11 @@ class DataObjectChangeLog $this->logChange(DataObjectChange::CREATE, $name); } + public function logRead($name) + { + $this->logChange(DataObjectChange::READ, $name); + } + public function __get($name) { switch($name) { diff --git a/core/trunk/core/tests/class/DataObjectController.php b/core/trunk/core/tests/class/DataObjectController.php index 59f6c8cbb3014f048c7341ccb919e314b047622d..b2e3bd26abc1b6c728c176e810e9b367d764387a 100644 --- a/core/trunk/core/tests/class/DataObjectController.php +++ b/core/trunk/core/tests/class/DataObjectController.php @@ -11,19 +11,22 @@ class dataObjectController extends DOMDocument public function dataObjectController() { + // DataObject classes require_once 'core/tests/class/DataObjectSchema.php'; require_once 'core/tests/class/DataObjectArray.php'; require_once 'core/tests/class/DataObject.php'; require_once 'core/tests/class/DataObjectProperty.php'; + + // ChangeLog classes require_once 'core/tests/class/DataObjectChangeLog.php'; require_once 'core/tests/class/DataObjectChange.php'; + // DataAccessService / PDO classes require_once 'core/tests/class/DataAccessService_Database.php'; - $this->dataAccessService_Database = new dataAccessService_Database(); require_once 'core/tests/class/DataAccessService_XML.php'; - + + // Validator classes require_once 'core/tests/class/DataObjectValidator.php'; - $this->dataObjectValidator = new DataObjectValidator(); } @@ -32,12 +35,16 @@ class dataObjectController extends DOMDocument $this->schema = new DataObjectSchema(); $this->schema->loadSchema($xsdFile); + $this->dataAccessService_Database = new dataAccessService_Database(); + $objectSchemas = $this->schema->getObjectSchemas(); for($i=0; $i<$objectSchemas->length; $i++) { $objectSchema = $objectSchemas->item($i); $this->prototypeDataObject($objectSchema); } + $this->dataObjectValidator = new DataObjectValidator(); + } //************************************************************************* @@ -81,6 +88,7 @@ class dataObjectController extends DOMDocument $dataObject = $this->instanciateDataObject($objectSchema); $this->loadDataObject($dataObject); $dataObject->beginLogging(); + $dataObject->logRead(); return $dataObject; } @@ -113,7 +121,7 @@ class dataObjectController extends DOMDocument } - public function copy($dataObject) + public function copy($dataObject, $keepParent=true) { $dataObject = unserialize(serialize($dataObject)); @@ -129,6 +137,8 @@ class dataObjectController extends DOMDocument $children[$i]->clear(); } + if(!$keepParent) $dataObject->parentObject = false; + $dataObject->beginLogging(); $dataObject->logCreation(); @@ -313,6 +323,8 @@ class dataObjectController extends DOMDocument for($i=0; $i<count($objectDatas); $i++) { $objectData = $objectDatas[$i]; $dataObject = $this->instanciateDataObject($objectSchema); + $dataObject->beginLogging(); + $dataObject->logRead(); $arrayDataObject->append($dataObject); $this->loadProperties($dataObject, $objectData); $this->loadChildren($dataObject); diff --git a/core/trunk/core/tests/class/DataObjectSchema.php b/core/trunk/core/tests/class/DataObjectSchema.php index 0fb96281a96723f804cb96f78e5407314be349ab..3ef561b2b6f31dd0415dde26dc1947a52434be87 100644 --- a/core/trunk/core/tests/class/DataObjectSchema.php +++ b/core/trunk/core/tests/class/DataObjectSchema.php @@ -62,6 +62,15 @@ class DataObjectSchema extends DOMDocument { return $this->xpath->query($query, $contextElement); } + public function getDataSources() + { + $DSnodes = $this->xpath('/xsd:schema/xsd:annotation/xsd:appinfo/das:datasource'); + for($i=0; $i<$DSnodes->length; $i++) { + $DS[] = $DSnodes->item($i); + } + return $DS; + } + public function getObjectSchemas() { return $this->xpath('/xsd:schema/xsd:element');