/**
 * Get the children of this node
 *
 * @param   boolean  $recursive  False by default
 *
 * @return  CategoryNode[]  The children
 *
 * @since   1.6
 */
public function &getChildren($recursive = false)
{
    if (!$this->_allChildrenloaded) {
        $temp = $this->_constructor->get($this->id, true);
        if ($temp) {
            $this->_children = $temp->getChildren();
            $this->_leftSibling = $temp->getSibling(false);
            $this->_rightSibling = $temp->getSibling(true);
            $this->setAllLoaded();
        }
    }
    if ($recursive) {
        $items = array();
        foreach ($this->_children as $child) {
            $items[] = $child;
            $items = array_merge($items, $child->getChildren(true));
        }
        return $items;
    }
    return $this->_children;
}