Class: Doctrine_Node_NestedSet

Source Location: /Doctrine/Node/NestedSet.php

Class Doctrine_Node_NestedSet

Class Overview
Inherited Properties, Constants, and Methods
Inherited Properties Inherited Methods Inherited Constants

Inherited From Doctrine_Node

Doctrine_Node::$iteratorOptions
Doctrine_Node::$iteratorType
Doctrine_Node::$options
Doctrine_Node::$record
Doctrine_Node::$_tree

Inherited From Doctrine_Node

Doctrine_Node::__construct()
contructor, creates node with reference to record and any options
Doctrine_Node::factory()
factory method to return node instance based upon chosen implementation
Doctrine_Node::getIterator()
get iterator
Doctrine_Node::getRecord()
getter for record attribute
Doctrine_Node::setIteratorOptions()
sets node's iterator options
Doctrine_Node::setIteratorType()
sets node's iterator type
Doctrine_Node::setRecord()
setter for record attribute
Doctrine_Node::traverse()
convenience function for getIterator

[ Top ]
Method Summary
void   addChild()   adds node as last child of record
void   delete()   deletes node and it's descendants
mixed   getAncestors()   gets ancestors for node
mixed   getChildren()   gets children for node (direct descendants only)
mixed   getDescendants()   gets descendants for node (direct descendants only)
object Doctrine_Record   getFirstChild()   gets record of first child or empty record
object Doctrine_Record   getLastChild()   gets record of last child or empty record
int   getLeftValue()   gets record's left value
int   getLevel()   gets level (depth) of node in the tree
object Doctrine_Record   getNextSibling()   gets record of next sibling or empty record
int   getNumberChildren()   gets number of children (direct descendants)
int   getNumberDescendants()   gets number of descendants (children and their children)
object Doctrine_Record   getParent()   gets record of parent or empty record
string   getPath()   gets path to node from root, uses record::toString() method to get node names
object Doctrine_Record   getPrevSibling()   gets record of prev sibling or empty record
int   getRightValue()   gets record's right value
void   getRootValue()   get records root id value
array   getSiblings()   gets siblings for node
bool   hasChildren()   test if node has children
bool   hasNextSibling()   test if node has next sibling
bool   hasParent()   test if node has parent
bool   hasPrevSibling()   test if node has previous sibling
bool   insertAsFirstChildOf()   inserts node as first child of dest record
bool   insertAsLastChildOf()   inserts node as last child of dest record
bool   insertAsNextSiblingOf()   inserts node as next sibling of dest record
bool   insertAsParentOf()   inserts node as parent of dest record
bool   insertAsPrevSiblingOf()   inserts node as previous sibling of dest record
void   insertNode()   sets node's left and right values and save's it
bool   isDescendantOf()   determines if node is child of subject node
bool   isDescendantOfOrEqualTo()   determines if node is child of or sibling to subject node
bool   isEqualTo()   determines if node is equal to subject node
bool   isLeaf()   determines if node is leaf
bool   isRoot()   determines if node is root
bool   isValidNode()   determines if node is valid
void   makeRoot()   Makes this node a root node. Only used in multiple-root trees.
void   moveAsFirstChildOf()   moves node as first child of dest record
void   moveAsLastChildOf()   moves node as last child of dest record
void   moveAsNextSiblingOf()   moves node as next sibling of dest record
void   moveAsPrevSiblingOf()   moves node as prev sibling of dest record
void   setLeftValue()   sets record's left value
void   setRightValue()   sets record's right value
void   setRootValue()   sets records root id value
void   shiftRlRange()   adds '$delta' to all Left and Right values that are >= '$first' and <= '$last'.
void   shiftRlValues()   adds '$delta' to all Left and Right values that are >= '$first'. '$delta' can also be negative.
void   updateNode()   move node's and its children to location $destLeft and updates rest of tree
void   _moveBetweenTrees()   Accomplishes moving of nodes between different trees.

[ Top ]
Properties
Methods
addChild  [line 682]

  void addChild( Doctrine_Record $record  )

adds node as last child of record

Parameters:
Doctrine_Record   $record: 

API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::addChild()
adds node as last child of record

[ Top ]
delete  [line 764]

  void delete( )

deletes node and it's descendants


API Tags:
Access:  public

Information Tags:
Todo:  Delete more efficiently. Wrap in transaction if needed.

Implementation of:
Doctrine_Node_Interface::delete()
deletes node and it's descendants

[ Top ]
getAncestors  [line 276]

  mixed getAncestors( [ $depth = null], integer $deth  )

gets ancestors for node

Parameters:
integer   $deth:  The depth 'upstairs'.
   $depth: 

API Tags:
Return:  The ancestors of the node or FALSE if the node has no ancestors (this basically means it's a root node).
Access:  public


Implementation of:
Doctrine_Node_Interface::getAncestors()
gets ancestors for node

[ Top ]
getChildren  [line 204]

  mixed getChildren( )

gets children for node (direct descendants only)


API Tags:
Return:  The children of the node or FALSE if the node has no children.
Access:  public


Implementation of:
Doctrine_Node_Interface::getChildren()
gets children for node (direct descendants only)

[ Top ]
getDescendants  [line 216]

  mixed getDescendants( [ $depth = null], [ $includeNode = false]  )

gets descendants for node (direct descendants only)

Parameters:
   $depth: 
   $includeNode: 

API Tags:
Return:  The descendants of the node or FALSE if the node has no descendants.
Access:  public

Information Tags:
Todo:  Currently all descendants are fetched, no matter the depth. Maybe there is a better solution with less overhead.

Implementation of:
Doctrine_Node_Interface::getDescendants()
gets descendants for node (direct descendants only)

[ Top ]
getFirstChild  [line 152]

  object Doctrine_Record getFirstChild( )

gets record of first child or empty record


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::getFirstChild()
gets record of first child or empty record

[ Top ]
getLastChild  [line 178]

  object Doctrine_Record getLastChild( )

gets record of last child or empty record


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::getLastChild()
gets record of last child or empty record

[ Top ]
getLeftValue  [line 913]

  int getLeftValue( )

gets record's left value


API Tags:
Access:  public


[ Top ]
getLevel  [line 953]

  int getLevel( )

gets level (depth) of node in the tree


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::getLevel()
gets level (depth) of node in the tree

[ Top ]
getNextSibling  [line 106]

  object Doctrine_Record getNextSibling( )

gets record of next sibling or empty record


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::getNextSibling()
gets record of next sibling or empty record

[ Top ]
getNumberChildren  [line 319]

  int getNumberChildren( )

gets number of children (direct descendants)


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::getNumberChildren()
gets number of children (direct descendants)

[ Top ]
getNumberDescendants  [line 329]

  int getNumberDescendants( )

gets number of descendants (children and their children)


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::getNumberDescendants()
gets number of descendants (children and their children)

[ Top ]
getParent  [line 247]

  object Doctrine_Record getParent( )

gets record of parent or empty record


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::getParent()
gets record of parent or empty record

[ Top ]
getPath  [line 300]

  string getPath( [string $seperator = ' > '], [ $includeRecord = false], bool $includeNode  )

gets path to node from root, uses record::toString() method to get node names

Parameters:
string   $seperator:  path seperator
bool   $includeNode:  whether or not to include node at end of path
   $includeRecord: 

API Tags:
Return:  string representation of path
Access:  public


Implementation of:
Doctrine_Node_Interface::getPath()
gets path to node from root, uses record::toString() method to get node names

[ Top ]
getPrevSibling  [line 80]

  object Doctrine_Record getPrevSibling( )

gets record of prev sibling or empty record


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::getPrevSibling()
gets record of prev sibling or empty record

[ Top ]
getRightValue  [line 933]

  int getRightValue( )

gets record's right value


API Tags:
Access:  public


[ Top ]
getRootValue  [line 974]

  void getRootValue( )

get records root id value


API Tags:
Access:  public


[ Top ]
getSiblings  [line 132]

  array getSiblings( [ $includeNode = false]  )

gets siblings for node

Parameters:
   $includeNode: 

API Tags:
Return:  array of sibling Doctrine_Record objects
Access:  public


Implementation of:
Doctrine_Node_Interface::getSiblings()
gets siblings for node

[ Top ]
hasChildren  [line 60]

  bool hasChildren( )

test if node has children


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::hasChildren()
test if node has children

[ Top ]
hasNextSibling  [line 50]

  bool hasNextSibling( )

test if node has next sibling


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::hasNextSibling()
test if node has next sibling

[ Top ]
hasParent  [line 70]

  bool hasParent( )

test if node has parent


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::hasParent()
test if node has parent

[ Top ]
hasPrevSibling  [line 40]

  bool hasPrevSibling( )

test if node has previous sibling


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::hasPrevSibling()
test if node has previous sibling

[ Top ]
insertAsFirstChildOf  [line 421]

  bool insertAsFirstChildOf( Doctrine_Record $dest  )

inserts node as first child of dest record

Parameters:
Doctrine_Record   $dest: 

API Tags:
Access:  public

Information Tags:
Todo:  Wrap in transaction

Implementation of:
Doctrine_Node_Interface::insertAsFirstChildOf()
inserts node as first child of dest record

[ Top ]
insertAsLastChildOf  [line 447]

  bool insertAsLastChildOf( Doctrine_Record $dest  )

inserts node as last child of dest record

Parameters:
Doctrine_Record   $dest: 

API Tags:
Access:  public

Information Tags:
Todo:  Wrap in transaction

Implementation of:
Doctrine_Node_Interface::insertAsLastChildOf()
inserts node as first child of dest record

[ Top ]
insertAsNextSiblingOf  [line 395]

  bool insertAsNextSiblingOf( Doctrine_Record $dest  )

inserts node as next sibling of dest record

Parameters:
Doctrine_Record   $dest: 

API Tags:
Access:  public

Information Tags:
Todo:  Wrap in transaction

Implementation of:
Doctrine_Node_Interface::insertAsNextSiblingOf()
inserts node as next sibling of dest record

[ Top ]
insertAsParentOf  [line 340]

  bool insertAsParentOf( Doctrine_Record $dest  )

inserts node as parent of dest record

Parameters:
Doctrine_Record   $dest: 

API Tags:
Access:  public

Information Tags:
Todo:  Wrap in transaction

Implementation of:
Doctrine_Node_Interface::insertAsParentOf()
inserts node as parent of dest record

[ Top ]
insertAsPrevSiblingOf  [line 369]

  bool insertAsPrevSiblingOf( Doctrine_Record $dest  )

inserts node as previous sibling of dest record

Parameters:
Doctrine_Record   $dest: 

API Tags:
Access:  public

Information Tags:
Todo:  Wrap in transaction

Implementation of:
Doctrine_Node_Interface::insertAsPrevSiblingOf()
inserts node as previous sibling of dest record

[ Top ]
insertNode  [line 794]

  void insertNode( [int $destLeft = 0], [int $destRight = 0], [ $destRoot = 1]  )

sets node's left and right values and save's it

Parameters:
int   $destLeft:  node left value
int   $destRight:  node right value
   $destRoot: 

API Tags:
Access:  private


[ Top ]
isDescendantOf  [line 725]

  bool isDescendantOf( Doctrine_Record $subj  )

determines if node is child of subject node

Parameters:
Doctrine_Record   $subj: 

API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::isDescendantOf()
determines if node is child of subject node

[ Top ]
isDescendantOfOrEqualTo  [line 737]

  bool isDescendantOfOrEqualTo( Doctrine_Record $subj  )

determines if node is child of or sibling to subject node

Parameters:
Doctrine_Record   $subj: 

API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::isDescendantOfOrEqualTo()
determines if node is child of or sibling to subject node

[ Top ]
isEqualTo  [line 712]

  bool isEqualTo( Doctrine_Record $subj  )

determines if node is equal to subject node

Parameters:
Doctrine_Record   $subj: 

API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::isEqualTo()
determines if node is equal to subject node

[ Top ]
isLeaf  [line 692]

  bool isLeaf( )

determines if node is leaf


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::isLeaf()
determines if node is leaf

[ Top ]
isRoot  [line 702]

  bool isRoot( )

determines if node is root


API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::isRoot()
determines if node is root

[ Top ]
isValidNode  [line 749]

  bool isValidNode( [ $record = null]  )

determines if node is valid

Parameters:
   $record: 

API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::isValidNode()
determines if node is valid

[ Top ]
makeRoot  [line 627]

  void makeRoot( $newRootId  )

Makes this node a root node. Only used in multiple-root trees.

Parameters:
   $newRootId: 

API Tags:
Access:  public

Information Tags:
Todo:  Exception handling/wrapping

[ Top ]
moveAsFirstChildOf  [line 592]

  void moveAsFirstChildOf( Doctrine_Record $dest  )

moves node as first child of dest record

Parameters:
Doctrine_Record   $dest: 

API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::moveAsFirstChildOf()
moves node as first child of dest record

[ Top ]
moveAsLastChildOf  [line 609]

  void moveAsLastChildOf( Doctrine_Record $dest  )

moves node as last child of dest record

Parameters:
Doctrine_Record   $dest: 

API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::moveAsLastChildOf()
moves node as last child of dest record

[ Top ]
moveAsNextSiblingOf  [line 575]

  void moveAsNextSiblingOf( Doctrine_Record $dest  )

moves node as next sibling of dest record

Parameters:
Doctrine_Record   $dest: 

API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::moveAsNextSiblingOf()
moves node as next sibling of dest record

[ Top ]
moveAsPrevSiblingOf  [line 558]

  void moveAsPrevSiblingOf( Doctrine_Record $dest  )

moves node as prev sibling of dest record

Parameters:
Doctrine_Record   $dest: 

API Tags:
Access:  public


Implementation of:
Doctrine_Node_Interface::moveAsPrevSiblingOf()
moves node as prev sibling of dest record

[ Top ]
setLeftValue  [line 923]

  void setLeftValue( int $lft  )

sets record's left value

Parameters:
int   $lft: 

API Tags:
Access:  public


[ Top ]
setRightValue  [line 943]

  void setRightValue( int $rgt  )

sets record's right value

Parameters:
int   $rgt: 

API Tags:
Access:  public


[ Top ]
setRootValue  [line 987]

  void setRootValue( int $value  )

sets records root id value

Parameters:
int   $value: 

API Tags:
Access:  public


[ Top ]
shiftRlRange  [line 883]

  void shiftRlRange( int $first, int $last, int $delta, [ $rootId = 1]  )

adds '$delta' to all Left and Right values that are >= '$first' and <= '$last'.

'$delta' can also be negative.

Parameters:
int   $first:  First node to be shifted (L value)
int   $last:  Last node to be shifted (L value)
int   $delta:  Value to be shifted by, can be negative
   $rootId: 

API Tags:
Access:  private


[ Top ]
shiftRlValues  [line 850]

  void shiftRlValues( int $first, int $delta, [ $rootId = 1]  )

adds '$delta' to all Left and Right values that are >= '$first'. '$delta' can also be negative.

Parameters:
int   $first:  First node to be shifted
int   $delta:  Value to be shifted by, can be negative
   $rootId: 

API Tags:
Access:  private


[ Top ]
updateNode  [line 808]

  void updateNode( int $destLeft, $levelDiff  )

move node's and its children to location $destLeft and updates rest of tree

Parameters:
int   $destLeft:  destination left value
   $levelDiff: 

API Tags:
Access:  private

Information Tags:
Todo:  Wrap in transaction

[ Top ]
_moveBetweenTrees  [line 476]

  void _moveBetweenTrees( Doctrine_Record $dest, unknown_type $newLeftValue, unknown_type $moveType  )

Accomplishes moving of nodes between different trees.

Used by the move* methods if the root values of the two nodes are different.

Parameters:
Doctrine_Record   $dest: 
unknown_type   $newLeftValue: 
unknown_type   $moveType: 

API Tags:
Access:  private

Information Tags:
Todo:  Better exception handling/wrapping

[ Top ]