public function whereDescendantOf($id, $boolean = 'and', $not = FALSE,
        $andSelf = FALSE
    )
    {
        if (NestedSet::isNode($id)) {
            $data = $id->getBounds();
        }
        else {
            $data = $this->model->newNestedSetQuery()
                                ->getPlainNodeData($id, TRUE);
        }

        // Don't include the node
        if (!$andSelf) {
            ++$data[0];
        }

        return $this->whereNodeBetween($data, $boolean, $not);
    }