Commit 8eabed57 authored by zYne's avatar zYne

tree handling added

parent 43369bb4
......@@ -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
*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment