tree handling added
This commit is contained in:
parent
43369bb48f
commit
8eabed57d6
@ -162,7 +162,10 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable
|
|||||||
'treeOptions' => null,
|
'treeOptions' => null,
|
||||||
'index' => array(),
|
'index' => array(),
|
||||||
);
|
);
|
||||||
|
/**
|
||||||
|
* @var Doctrine_Tree $tree tree object associated with this table
|
||||||
|
*/
|
||||||
|
protected $tree;
|
||||||
/**
|
/**
|
||||||
* the constructor
|
* the constructor
|
||||||
* @throws Doctrine_Connection_Exception if there are no opened connections
|
* @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 'enumMap':
|
||||||
case 'inheritanceMap':
|
case 'inheritanceMap':
|
||||||
case 'index':
|
case 'index':
|
||||||
|
case 'treeOptions':
|
||||||
if ( ! is_array($value)) {
|
if ( ! is_array($value)) {
|
||||||
throw new Doctrine_Table_Exception($name . ' should be an array.');
|
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;
|
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
|
* returns a string representation of this object
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user