protected function detachFromTree(AbstractNestedNode $node)
    {
        if (true === $node->isRoot()) {
            return $this;
        }

        $this->refreshExistingNode($node)
                ->createQueryBuilder('n')
                ->set('n._leftnode', 'n._leftnode - :delta_node')
                ->set('n._rightnode', 'n._rightnode - :delta_node')
                ->set('n._level', 'n._level - :delta_level')
                ->set('n._root', ':node')
                ->andIsDescendantOf($node)
                ->setParameter('delta_node', $node->getLeftnode() - 1)
                ->setParameter('delta_level', $node->getLevel())
                ->setParameter('node', $node)
                ->update()
                ->getQuery()
                ->execute();

        $this->shiftRlValues($node, $node->getLeftnode(), - $node->getWeight());

        $node->setRightnode($node->getWeight())
                ->setLeftnode(1)
                ->setLevel(0)
                ->setRoot($node);

        return $this;
    }
protected function detachFromTree(AbstractNestedNode $node)
    {
        if (true === $node->isRoot()) {
            return $this;
        }

        $this->refreshExistingNode($node)
                ->createQueryBuilder('n')
                ->set('n._leftnode', 'n._leftnode - :delta_node')
                ->set('n._rightnode', 'n._rightnode - :delta_node')
                ->set('n._level', 'n._level - :delta_level')
                ->set('n._root', ':node')
                ->andIsDescendantOf($node)
                ->setParameter('delta_node', $node->getLeftnode() - 1)
                ->setParameter('delta_level', $node->getLevel())
                ->setParameter('node', $node)
                ->update()
                ->getQuery()
                ->execute();

        $this->shiftRlValues($node, $node->getLeftnode(), - $node->getWeight());

        $node->setRightnode($node->getWeight())
                ->setLeftnode(1)
                ->setLevel(0)
                ->setRoot($node);

        return $this;
    }
protected function detachFromTree ( AbstractNestedNode $ node ) { if ( true === $ node -> isRoot ( ) ) { return $ this ; } $ this -> refreshExistingNode ( $ node ) -> createQueryBuilder ( 'n' ) -> set ( 'n._leftnode' , 'n._leftnode - :delta_node' ) -> set ( 'n._rightnode' , 'n._rightnode - :delta_node' ) -> set ( 'n._level' , 'n._level - :delta_level' ) -> set ( 'n._root' , ':node' ) -> andIsDescendantOf ( $ node ) -> setParameter ( 'delta_node' , $ node -> getLeftnode ( ) - 1 ) -> setParameter ( 'delta_level' , $ node -> getLevel ( ) ) -> setParameter ( 'node' , $ node ) -> update ( ) -> getQuery ( ) -> execute ( ) ; $ this -> shiftRlValues ( $ node , $ node -> getLeftnode ( ) , - $ node -> getWeight ( ) ) ; $ node -> setRightnode ( $ node -> getWeight ( ) ) -> setLeftnode ( 1 ) -> setLevel ( 0 ) -> setRoot ( $ node ) ; return $ this ; }
Detach node from its tree, ie create a new tree from node.

@param  \BackBee\NestedNode\AbstractNestedNode                     $node
@return \BackBee\NestedNode\Repository\NestedNodeRepository
Detach node from its tree ie create a new tree from node .