[Cs-webapplibs-commits] SF.net SVN: cs-webapplibs:[166] trunk/0.3
Status: Beta
Brought to you by:
crazedsanity
From: <cra...@us...> - 2010-06-15 02:12:32
|
Revision: 166 http://cs-webapplibs.svn.sourceforge.net/cs-webapplibs/?rev=166&view=rev Author: crazedsanity Date: 2010-06-15 02:12:26 +0000 (Tue, 15 Jun 2010) Log Message: ----------- Remove generic data linker. Removed Paths: ------------- trunk/0.3/abstract/cs_gdlAttrib.abstract.class.php trunk/0.3/abstract/cs_gdlObject.abstract.class.php trunk/0.3/abstract/cs_gdlPath.abstract.class.php trunk/0.3/cs_genericDataLinker.class.php Deleted: trunk/0.3/abstract/cs_gdlAttrib.abstract.class.php =================================================================== --- trunk/0.3/abstract/cs_gdlAttrib.abstract.class.php 2010-06-15 02:10:54 UTC (rev 165) +++ trunk/0.3/abstract/cs_gdlAttrib.abstract.class.php 2010-06-15 02:12:26 UTC (rev 166) @@ -1,89 +0,0 @@ -<?php -/* - * Created on Jan 29, 2009 - * - * FILE INFORMATION: - * - * $HeadURL$ - * $Id$ - * $LastChangedDate$ - * $LastChangedBy$ - * $LastChangedRevision$ - */ - -abstract class cs_gdlAttribAbstract extends cs_gdlPathAbstract { - - - const table='cswal_gdl_attribute_table'; - const tableSeq = 'cswal_gdl_attribute_table_attribute_id_seq'; - - - - //------------------------------------------------------------------------- - public function create_attrib($path, $data, $type=null) { - - $objectId = $this->get_object_id_from_path($path); - - $insertString = ""; - $attribs = array(); - if(is_array($data) && count($data)) { - foreach($data as $n=>$v) { - $n = $this->translate_attrib_name($n); - $attribs[$n] = $v; - } - } - elseif(!is_null($type)) { - $key = $this->translate_attrib_name($type); - $attribs = array($key => $data); - } - else { - throw new exception(__METHOD__ .": data was not array and no type set"); - } - - if(!is_array($attribs) || !count($attribs)) { - throw new exception(__METHOD__ .": failed to create an array of attributes... ". $this->gfObj->debug_print(func_get_args(),0)); - } - - $attribs['object_id'] = $objectId; - $insertString = $this->gfObj->string_from_array($attribs, 'insert'); - - - if(!strlen($insertString)) { - throw new exception(__METHOD__ .": invalid insert string (". $insertString .")"); - } - $sql = "INSERT INTO ". self::attrTable ." ". $insertString; - - try { - $retval = $this->db->run_insert($sql, self::attrTableSeq); - } - catch(exception $e) { - throw new exception(__METHOD__ .": failed to perform insert::: ". $e->getMessage() .' ---- '. $sql); - } - - return($retval); - }//end create_attrib() - //------------------------------------------------------------------------- - - - - //------------------------------------------------------------------------- - public function translate_attrib_name($name) { - $retval = null; - foreach($this->validTypes as $type) { - if(preg_match('/^'. $type .'/', $name)) { - $retval = 'a_'. $type; - break; - } - } - - if(is_null($retval) || !strlen($retval)) { - $this->gfObj->debug_print(__METHOD__ .": name was (". $name ."), retval=(". $retval .")",1); - throw new exception(__METHOD__ .": invalid attribute name (". $name .")"); - } - - return($retval); - }//end translate_attrib_name() - //------------------------------------------------------------------------- - -} -?> \ No newline at end of file Deleted: trunk/0.3/abstract/cs_gdlObject.abstract.class.php =================================================================== --- trunk/0.3/abstract/cs_gdlObject.abstract.class.php 2010-06-15 02:10:54 UTC (rev 165) +++ trunk/0.3/abstract/cs_gdlObject.abstract.class.php 2010-06-15 02:12:26 UTC (rev 166) @@ -1,130 +0,0 @@ -<?php -/* - * Created on Jan 29, 2009 - * - * FILE INFORMATION: - * - * $HeadURL$ - * $Id$ - * $LastChangedDate$ - * $LastChangedBy$ - * $LastChangedRevision$ - */ - -abstract class cs_gdlObjectAbstract extends cs_webapplibsAbstract { - - - const table='cswal_gdl_object_table'; - const tableSeq = 'cswal_gdl_object_table_object_id_seq'; - - //------------------------------------------------------------------------- - public function get_object_id_from_path($path) { - $sql = "SELECT object_id FROM ". self::table ." WHERE object_path='". - $this->clean_path($path) ."'"; - - try { - $data = $this->db->run_query($sql); - - if(is_array($data) && count($data) == 1) { - $retval = $data['object_id']; - } - else { - throw new exception(__METHOD__ .": invalid data for path (". $this->clean_path($path) .")::: ". $this->gfObj->debug_var_dump($data,0)); - } - } - catch(exception $e) { - throw new exception(__METHOD__ .": error retrieving path::: ". $e->getMessage()); - } - - return($retval); - }//end get_object_id_from_path() - //------------------------------------------------------------------------- - - - - //------------------------------------------------------------------------- - public function create_object($name, $data=null, $type=null) { - $sql = "INSERT INTO ". self::table ." (object_name) VALUES ('". - $this->gfObj->cleanString($this->clean_path($name), 'sql_insert') ."')"; - try { - $retval = $this->db->run_insert($sql, self::tableSeq); - } - catch(exception $e) { - throw new exception(__METHOD__ .": failed to perform insert::: ". $e->getMessage()); - } - - if(!is_null($data)) { - throw new exception(__METHOD__ .": can't create data for objects yet"); - } - return($retval); - }//end create_object() - //------------------------------------------------------------------------- - - - - //------------------------------------------------------------------------- - public function build_object_id_list(array $objects) { - $this->gfObj->switch_force_sql_quotes(1); - $sql = "SELECT * FROM ". self::table ." WHERE object_name IN (". - $this->gfObj->string_from_array($objects, null, ',', 'sql') .")"; - $this->gfObj->switch_force_sql_quotes(0); - - $retval = array(); - try { - $retval = $this->db->run_query($sql, 'object_name', 'object_id'); - if(!is_array($retval)) { - $retval = array(); - } - } - catch(exception $e) { - //throw new exception(__METHOD__ .": failed to retrieve list"); - } - - return($retval); - }//end build_object_id_list() - //------------------------------------------------------------------------- - - - - //------------------------------------------------------------------------- - public function build_object_name_list(array $objectIds) { - $this->gfObj->switch_force_sql_quotes(1); - $sql = "SELECT * FROM ". self::table ." WHERE object_id IN (". - $this->gfObj->string_from_array($objectIds, null, ',', 'sql') .")"; - $this->gfObj->switch_force_sql_quotes(0); - - try { - $retval = $this->db->run_query($sql, 'object_id', 'object_name'); - if(!is_array($retval)) { - $retval = array(); - } - } - catch(exception $e) { - throw new exception(__METHOD__ .": failed to retrieve list::: ". $e->getMessage()); - } - - return($retval); - }//end build_object_id_list() - //------------------------------------------------------------------------- - - - - //------------------------------------------------------------------------- - public function create_objects_enmasse(array $objectList) { - $retval = 0; - foreach($objectList as $name) { - try { - $this->create_object($name); - $retval++; - } - catch(exception $e) { - //nothing to see here, move along. - } - } - return($retval); - }//end create_objects_enmasse() - //------------------------------------------------------------------------- - - -} -?> \ No newline at end of file Deleted: trunk/0.3/abstract/cs_gdlPath.abstract.class.php =================================================================== --- trunk/0.3/abstract/cs_gdlPath.abstract.class.php 2010-06-15 02:10:54 UTC (rev 165) +++ trunk/0.3/abstract/cs_gdlPath.abstract.class.php 2010-06-15 02:12:26 UTC (rev 166) @@ -1,126 +0,0 @@ -<?php -/* - * Created on Jan 29, 2009 - * - * FILE INFORMATION: - * - * $HeadURL$ - * $Id$ - * $LastChangedDate$ - * $LastChangedBy$ - * $LastChangedRevision$ - */ - -abstract class cs_gdlPathAbstract extends cs_gdlObjectAbstract { - - - const table='cswal_gdl_path_table'; - const tableSeq = 'cswal_gdl_path_table_path_id_seq'; - - - - - - //------------------------------------------------------------------------- - public function create_path($path) { - $idList = $this->create_path_objects($path); - $pathIdList = $this->create_id_path($idList); - - if($this->get_path_from_idlist($pathIdList)) { - $retval = $pathIdList; - } - else { - - $sql = "INSERT INTO ". self::table ." (path_id_list) VALUES ('". $pathIdList ."')"; - - try { - $insertedId = $this->db->run_insert($sql, self::tableSeq); - $retval = $pathIdList; - } - catch(exception $e) { - throw new exception(__METHOD__ .": unable to create path::: ". $e->getMessage()); - } - } - - return($retval); - }//end create_path() - //------------------------------------------------------------------------- - - - - //------------------------------------------------------------------------- - public function clean_path($path, $appendBase=true) { - if(strlen($path)) { - if($appendBase === true && !is_null($this->basePath)) { - $path = $this->basePath .'/'. $path; - } - $newPath = preg_replace('/\/{2,}/', '/', $path); - - if(!strlen($newPath)) { - throw new exception(__METHOD__ .": new path is zero-length (". $newPath ."), old path=(". func_get_arg(0) .")"); - } - } - else { - throw new exception(__METHOD__ .": no valid path given (". $path .")"); - } - - return($newPath); - }//end clean_path() - //------------------------------------------------------------------------- - - - - //------------------------------------------------------------------------- - public function set_base_path($path) { - if(is_null($path) || !strlen($path)) { - $this->basePath = null; - } - else { - $this->basePath = $this->clean_path($path,false); - } - }//end set_base_path() - //------------------------------------------------------------------------- - - - - //------------------------------------------------------------------------- - public function explode_path($path, $appendBase=true) { - $path = $this->clean_path($path, $appendBase); - $path = preg_replace('/^\//', '', $path); - $path = preg_replace('/\/$/', '', $path); - - return(explode('/', $path)); - }//end explode_path() - //------------------------------------------------------------------------- - - - - //------------------------------------------------------------------------- - public function create_id_path(array $idList) { - $retval = ':'. $this->gfObj->string_from_array($idList, null, '::') .':'; - return($retval); - }//end create_id_path() - //------------------------------------------------------------------------- - - - - //------------------------------------------------------------------------- - public function get_path_from_idlist($idPath) { - - $idList = explode('::', preg_replace('/^:/', '', preg_replace('/:$/', '', $idPath))); - - $nameList = $this->build_object_name_list($idList); - - $retval = "/"; - foreach($nameList as $id=>$name) { - $retval = $this->gfObj->create_list($retval, $name, '/'); - } - - $retval = $this->clean_path($retval,false); - - return($retval); - }//end get_text_path_from_id_path() - //------------------------------------------------------------------------- - -} -?> \ No newline at end of file Deleted: trunk/0.3/cs_genericDataLinker.class.php =================================================================== --- trunk/0.3/cs_genericDataLinker.class.php 2010-06-15 02:10:54 UTC (rev 165) +++ trunk/0.3/cs_genericDataLinker.class.php 2010-06-15 02:12:26 UTC (rev 166) @@ -1,101 +0,0 @@ -<?php -/* - * Created on Oct 27, 2009 - * - * THE IDEA::: - * 1.) Unix/Linux-like paths lead to an attribute. - * 2.) Multiple paths can lead to the same attribute. - * 3.) An attribute can be linked to its original path. - * 4.) Each "directory" in a path is an object with an ID. - * 5.) Paths themselves are only stored on attributes: intermediate paths may be valid if all objects - * for that path are also valid (i.e. if "/one/two/three" is valid, so is "/two/one/three" and "/three/two/one"). - * 6.) Database... - * a.) finding an attribute referencing a single object should be straightforward and fast. - * b.) objects are unique to avoid excess duplicate pathways - * c.) using id paths with each number wrapped in colons is simple (i.e. ":3342:", ":3342::3::3:" - * - * The idea here is to have a class that generically links data together (in a - * database). It is not meant to be a super clean or speedy system, instead meant - * as a way of describing relationships between various pieces of data. - * - * Once a path is created (list object_id's, separated by '::'), it should always have an attribute. - * - * - * 1::2::3 -> select * from <bla> WHERE path = '2' OR path like '2::%' OR path like '%::2' - * -OR- - * :1::2::3: -> select * from <bla> WHERE path like '%:2:%' - * - * If an attribute is created with a small path (like "/test") and the id is 1, the attribute shows ":1:" - * --> if the id is 7720218, then the attribute shows ":7720218:" - * - * - * SVN INFORMATION::: - * ------------------- - * Last Author::::::::: $Author$ - * Current Revision:::: $Revision$ - * Repository Location: $HeadURL$ - * Last Updated:::::::: $Date$ - */ - - - -class cs_genericDataLinker extends cs_gdlAttribAbstract { - - const attrTable='cswal_gdl_attribute_table'; - const attrTableSeq='cswal_gdl_attribute_table_attribute_id_seq'; - - protected $validTypes = array('text', 'int', 'dec', 'bool'); - protected $gfObj; - protected $basePath=null; - - public $db; - - //------------------------------------------------------------------------- - public function __construct(cs_phpDB $db) { - - parent::__construct($db); - if(!$db->is_connected()) { - throw new exception(__METHOD__ .": database not connected"); - } - $this->db = $db; - $this->gfObj = new cs_globalFunctions; - }//end __construct() - //------------------------------------------------------------------------- - - - - //------------------------------------------------------------------------- - public function create_path_objects($path) { - $newPath = $this->clean_path($path); - $newPath = preg_replace('/^\//', '', $newPath); - - //break it into bits. - $bits = explode('/', $newPath); - - $myList = $this->build_object_id_list($bits); - if(count($myList) !== count($bits)) { - $createThese = array(); - foreach($bits as $name) { - if(!isset($myList[$name])) { - $createThese[] = $name; - } - } - $this->create_objects_enmasse($createThese); - $myList = $this->build_object_id_list($bits); - } - - $retval = array(); - foreach($bits as $name) { - $retval[$name] = $myList[$name]; - } - - if(is_null($retval) || !is_array($retval) || !count($retval)) { - throw new exception(__METHOD__ .": failed to build path objects... ". $retval); - } - - return($retval); - }//end create_path_objects() - //------------------------------------------------------------------------- -} - -?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |