Back to NodeTrait class

Method setParent

public void
setParent
(\Joomla\CMS\Tree\NodeInterface $parent)
Set the parent of this node
Parameters
  • \Joomla\CMS\Tree\NodeInterface|null $parent NodeInterface for the parent to be set or null
Returns
  • void
Since
  • 4.0.0
Class: NodeTrait
Project: Joomla

Method setParent - Source code

/**
 * Set the parent of this node
 *
 * If the node already has a parent, the link is unset
 *
 * @param   NodeInterface|null  $parent  NodeInterface for the parent to be set or null
 *
 * @return  void
 *
 * @since   4.0.0
 */
public function setParent(NodeInterface $parent)
{
    if (!\is_null($this->_parent)) {
        $key = array_search($this, $this->_parent->_children);
        unset($this->_parent->_children[$key]);
    }
    $this->_parent = $parent;
    $this->_parent->_children[] =& $this;
    if (\count($this->_parent->_children) > 1) {
        end($this->_parent->_children);
        $this->_leftSibling = prev($this->_parent->_children);
        $this->_leftSibling->_rightSibling = $this;
    }
}