id = $id;
}
/**
*
* Find node in tree by id
*
* @param AbstractNode $node
* @return bool|AbstractNode
*/
public function find(AbstractNode $node)
{
if (!$node->id() && $node instanceof InnerNode) {
return $this->find($node->firstChild());
}
if ($node->id() == $this->id) {
return $node;
}
if ($node->hasNextSibling()) {
$nextSibling = $node->nextSibling();
if ($nextSibling->id() == $this->id) {
return $nextSibling;
}
if ($nextSibling->id() > $this->id) {
return $this->find($node->firstChild());
}
if ($nextSibling->id() < $this->id) {
return $this->find($nextSibling);
}
} else if (!$node->isTextNode()) {
return $this->find($node->firstChild());
}
return false;
}
}