1
0
mirror of synced 2024-12-13 22:56:04 +03:00

tree handling added

This commit is contained in:
zYne 2007-02-07 23:10:41 +00:00
parent 43369bb48f
commit 8eabed57d6

View File

@ -162,7 +162,10 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable
'treeOptions' => null,
'index' => array(),
);
/**
* @var Doctrine_Tree $tree tree object associated with this table
*/
protected $tree;
/**
* the constructor
* @throws Doctrine_Connection_Exception if there are no opened connections
@ -411,6 +414,7 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable
case 'enumMap':
case 'inheritanceMap':
case 'index':
case 'treeOptions':
if ( ! is_array($value)) {
throw new Doctrine_Table_Exception($name . ' should be an array.');
}
@ -1373,6 +1377,43 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable
{
return $this->data;
}
/**
* returns a string representation of this object
*
* @return string
*/
public function setTree($implName, $options) {
$this->setOption('treeImpl', $implName);
$this->setOption('treeOptions', $options);
}
/**
* getter for associated tree
*
* @return mixed if tree return instance of Doctrine_Tree, otherwise returns false
*/
public function getTree() {
if (isset($this->options['treeImpl'])) {
if ( ! $this->tree) {
$this->tree = Doctrine_Tree::factory($this,
$this->options['treeImpl'],
$this->options['treeOptions']
);
// set the table definition for the given tree implementation
$this->tree->setTableDefinition();
}
return $this->tree;
}
return false;
}
/**
* determine if table acts as tree
*
* @return mixed if tree return instance of Doctrine_Tree, otherwise returns false
*/
public function isTree() {
return ( ! is_null($this->options['treeImpl'])) ? true : false;
}
/**
* returns a string representation of this object
*