private function _removeDescendants(NodeInterface $node) { /** @var NodeInterface $descendantNode */ foreach ($node->getDescendants() as $descendantNode) { if ($descendantNode->getId() || $this->_idExists($descendantNode->getId())) { unset($this->nodes[$descendantNode->getId()]); } } }