/** * @brief Instancie la classe concrête correspondante à la signature de driver fournie * @param $driverSignature string signature du driver * @return DataGridSource * @throw Exception */ public final function &createNew($driverSignature) { $rv = null; $dgDriver =& DataSourceDriver::createNew($driverSignature); if ('xml' == $dgDriver->getScheme()) { System::import('System.DataGrid.DataSources.XmlDataGridSource'); $rv =& new XmlDataGridSource($dgDriver); /** * @todo Supprimer ce if = 'mysql' car on devrait pas avoir a connaitre le type de dbms * modification du driver ? * appel à une méthode statique de dbmsdatasource/dbmsdatagridsource ? */ } elseif ('mysql' == $dgDriver->getScheme()) { System::import('System.DataGrid.DataSources.DbmsDataGridSource'); $rv =& new DbmsDataGridSource($dgDriver); } else { throw new Exception('Unsupported datasource scheme'); } return $rv; }
/* System::export( $s->delete( $caddyId ), '-- Delete caddy --' ); */ $caddy =& $s->loadById($caddyId); if (is_null($caddy)) { $caddy =& new Caddy(); } System::export($s->getDateUpdate(), '-- Last update time --'); $t =& new CaddyItem('AZERTY', 1, 0); $caddy->removeCaddyItem($t); $s->save(); $db->dispose(); System::export('-- saving to caddies.xml --'); System::import('System.DataSource.XmlDataSource'); System::import('System.Caddy.Storage.CaddyXmlBlobStorage'); $xml =& new XmlDataSource(DataSourceDriver::createNew('xml://caddies.xml/')); $s =& new CaddyXmlBlobStorage($xml, $caddy); $xml->connect(); System::export($s->save($caddyId)); $caddy =& $s->loadById($caddyId); if (is_null($caddy)) { $caddy =& new Caddy(); } $xml->dispose(); System::export($caddy->size(), '-- caddy\' size --'); System::export('-- iterate items --'); $iterator =& $caddy->getIterator(); while ($iterator->hasNext()) { $caddyItem =& $iterator->next(); System::export($caddyItem, 'élément n°' . $iterator->key()); $featIterator =& $caddyItem->getIterator();