Skip to content
Snippets Groups Projects
Commit aa6985c0 authored by Cyril Vazquez's avatar Cyril Vazquez
Browse files

No commit message

No commit message
parent 7461c535
No related branches found
No related tags found
No related merge requests found
<?php <?php
class DataAccessService_Database class DataAccessService_Database
{ {
private $connection; private $connection;
...@@ -7,11 +8,13 @@ class DataAccessService_Database ...@@ -7,11 +8,13 @@ class DataAccessService_Database
public $tables = array(); public $tables = array();
public $relations = array(); public $relations = array();
private $limit; private $limit;
private $db;
public function DataAccessService_Database($schema='public', $limit=500) public function DataAccessService_Database($schema='public', $limit=500)
{ {
$this->schema = $schema; $this->schema = $schema;
$this->limit = $limit; $this->limit = $limit;
$this->db = new dbquery();
} }
public function addTable($tableName) public function addTable($tableName)
...@@ -90,11 +93,10 @@ class DataAccessService_Database ...@@ -90,11 +93,10 @@ class DataAccessService_Database
//echo "<pre>DAS = " . print_r($this,true) . "</pre>"; //echo "<pre>DAS = " . print_r($this,true) . "</pre>";
//echo "<pre>QUERY = " . $query . "</pre>"; //echo "<pre>QUERY = " . $query . "</pre>";
$db = new dbquery(); $this->db->query($query);
$db->query($query);
$results = array(); $results = array();
while($result = $db->fetch_assoc()) { while($result = $this->db->fetch_assoc()) {
$results[] = $result; $results[] = $result;
} }
return $results; return $results;
...@@ -131,9 +133,8 @@ class DataAccessService_Database ...@@ -131,9 +133,8 @@ class DataAccessService_Database
$query .= " VALUES (" . $insertExpression . ")"; $query .= " VALUES (" . $insertExpression . ")";
//echo "<pre>DAS = " . print_r($this,true) . "</pre>"; //echo "<pre>DAS = " . print_r($this,true) . "</pre>";
//echo "<pre>QUERY = " . $query . "</pre>"; echo "<pre>QUERY = " . $query . "</pre>";
$db = new dbquery(); //$this->db->query($query);
$db->query($query);
$this->saveChildObjects($dataObject); $this->saveChildObjects($dataObject);
...@@ -156,9 +157,8 @@ class DataAccessService_Database ...@@ -156,9 +157,8 @@ class DataAccessService_Database
$query .= " WHERE " . $keyExpression; $query .= " WHERE " . $keyExpression;
//echo "<pre>DAS = " . print_r($this,true) . "</pre>"; //echo "<pre>DAS = " . print_r($this,true) . "</pre>";
//echo "<pre>QUERY = " . $query . "</pre>"; echo "<pre>QUERY = " . $query . "</pre>";
$db = new dbquery(); //$this->db->query($query);
$db->query($query);
$this->saveChildObjects($dataObject); $this->saveChildObjects($dataObject);
......
...@@ -135,11 +135,6 @@ class DataObject ...@@ -135,11 +135,6 @@ class DataObject
public function beginLogging() public function beginLogging()
{ {
$this->changeLog = new DataObjectChangeLog(); $this->changeLog = new DataObjectChangeLog();
$childObjects = $this->children;
for($i=0; $i<count($childObjects); $i++) {
$childObject = $childObjects[$i];
$childObject->beginLogging();
}
} }
public function logCreation() public function logCreation()
...@@ -147,6 +142,11 @@ class DataObject ...@@ -147,6 +142,11 @@ class DataObject
$this->changeLog->logCreation($this->name); $this->changeLog->logCreation($this->name);
} }
public function logRead()
{
$this->changeLog->logRead($this->name);
}
//************************************************************************* //*************************************************************************
// XML // XML
//************************************************************************* //*************************************************************************
...@@ -211,7 +211,6 @@ class DataObject ...@@ -211,7 +211,6 @@ class DataObject
} }
private function formatXmlString($xml) { private function formatXmlString($xml) {
// add marker linefeeds to aid the pretty-tokeniser (adds a linefeed between all tag-end boundaries) // add marker linefeeds to aid the pretty-tokeniser (adds a linefeed between all tag-end boundaries)
$xml = preg_replace('/(>)(<)(\/*)/', "$1\n$2$3", $xml); $xml = preg_replace('/(>)(<)(\/*)/', "$1\n$2$3", $xml);
......
...@@ -76,11 +76,6 @@ class DataObjectArray ...@@ -76,11 +76,6 @@ class DataObjectArray
public function beginLogging() public function beginLogging()
{ {
$this->changeLog = new DataObjectChangeLog(); $this->changeLog = new DataObjectChangeLog();
$childObjects = $this->children;
for($i=0; $i<count($childObjects); $i++) {
$childObject = $childObjects[$i];
$childObject->beginLogging();
}
} }
public function logCreation() public function logCreation()
......
...@@ -23,6 +23,11 @@ class DataObjectChangeLog ...@@ -23,6 +23,11 @@ class DataObjectChangeLog
$this->logChange(DataObjectChange::CREATE, $name); $this->logChange(DataObjectChange::CREATE, $name);
} }
public function logRead($name)
{
$this->logChange(DataObjectChange::READ, $name);
}
public function __get($name) public function __get($name)
{ {
switch($name) { switch($name) {
......
...@@ -11,19 +11,22 @@ class dataObjectController extends DOMDocument ...@@ -11,19 +11,22 @@ class dataObjectController extends DOMDocument
public function dataObjectController() public function dataObjectController()
{ {
// DataObject classes
require_once 'core/tests/class/DataObjectSchema.php'; require_once 'core/tests/class/DataObjectSchema.php';
require_once 'core/tests/class/DataObjectArray.php'; require_once 'core/tests/class/DataObjectArray.php';
require_once 'core/tests/class/DataObject.php'; require_once 'core/tests/class/DataObject.php';
require_once 'core/tests/class/DataObjectProperty.php'; require_once 'core/tests/class/DataObjectProperty.php';
// ChangeLog classes
require_once 'core/tests/class/DataObjectChangeLog.php'; require_once 'core/tests/class/DataObjectChangeLog.php';
require_once 'core/tests/class/DataObjectChange.php'; require_once 'core/tests/class/DataObjectChange.php';
// DataAccessService / PDO classes
require_once 'core/tests/class/DataAccessService_Database.php'; require_once 'core/tests/class/DataAccessService_Database.php';
$this->dataAccessService_Database = new dataAccessService_Database();
require_once 'core/tests/class/DataAccessService_XML.php'; require_once 'core/tests/class/DataAccessService_XML.php';
// Validator classes
require_once 'core/tests/class/DataObjectValidator.php'; require_once 'core/tests/class/DataObjectValidator.php';
$this->dataObjectValidator = new DataObjectValidator();
} }
...@@ -32,12 +35,16 @@ class dataObjectController extends DOMDocument ...@@ -32,12 +35,16 @@ class dataObjectController extends DOMDocument
$this->schema = new DataObjectSchema(); $this->schema = new DataObjectSchema();
$this->schema->loadSchema($xsdFile); $this->schema->loadSchema($xsdFile);
$this->dataAccessService_Database = new dataAccessService_Database();
$objectSchemas = $this->schema->getObjectSchemas(); $objectSchemas = $this->schema->getObjectSchemas();
for($i=0; $i<$objectSchemas->length; $i++) { for($i=0; $i<$objectSchemas->length; $i++) {
$objectSchema = $objectSchemas->item($i); $objectSchema = $objectSchemas->item($i);
$this->prototypeDataObject($objectSchema); $this->prototypeDataObject($objectSchema);
} }
$this->dataObjectValidator = new DataObjectValidator();
} }
//************************************************************************* //*************************************************************************
...@@ -81,6 +88,7 @@ class dataObjectController extends DOMDocument ...@@ -81,6 +88,7 @@ class dataObjectController extends DOMDocument
$dataObject = $this->instanciateDataObject($objectSchema); $dataObject = $this->instanciateDataObject($objectSchema);
$this->loadDataObject($dataObject); $this->loadDataObject($dataObject);
$dataObject->beginLogging(); $dataObject->beginLogging();
$dataObject->logRead();
return $dataObject; return $dataObject;
} }
...@@ -113,7 +121,7 @@ class dataObjectController extends DOMDocument ...@@ -113,7 +121,7 @@ class dataObjectController extends DOMDocument
} }
public function copy($dataObject) public function copy($dataObject, $keepParent=true)
{ {
$dataObject = unserialize(serialize($dataObject)); $dataObject = unserialize(serialize($dataObject));
...@@ -129,6 +137,8 @@ class dataObjectController extends DOMDocument ...@@ -129,6 +137,8 @@ class dataObjectController extends DOMDocument
$children[$i]->clear(); $children[$i]->clear();
} }
if(!$keepParent) $dataObject->parentObject = false;
$dataObject->beginLogging(); $dataObject->beginLogging();
$dataObject->logCreation(); $dataObject->logCreation();
...@@ -313,6 +323,8 @@ class dataObjectController extends DOMDocument ...@@ -313,6 +323,8 @@ class dataObjectController extends DOMDocument
for($i=0; $i<count($objectDatas); $i++) { for($i=0; $i<count($objectDatas); $i++) {
$objectData = $objectDatas[$i]; $objectData = $objectDatas[$i];
$dataObject = $this->instanciateDataObject($objectSchema); $dataObject = $this->instanciateDataObject($objectSchema);
$dataObject->beginLogging();
$dataObject->logRead();
$arrayDataObject->append($dataObject); $arrayDataObject->append($dataObject);
$this->loadProperties($dataObject, $objectData); $this->loadProperties($dataObject, $objectData);
$this->loadChildren($dataObject); $this->loadChildren($dataObject);
......
...@@ -62,6 +62,15 @@ class DataObjectSchema extends DOMDocument { ...@@ -62,6 +62,15 @@ class DataObjectSchema extends DOMDocument {
return $this->xpath->query($query, $contextElement); 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() public function getObjectSchemas()
{ {
return $this->xpath('/xsd:schema/xsd:element'); return $this->xpath('/xsd:schema/xsd:element');
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment