public function getNextItem()
    {
        $oRow = null;

        if (!empty($this->aData)) {
            $oRow = current($this->aData);
            next($this->aData);
        } elseif ($this->oSource instanceof \PDOStatement) {
            $oRow = $this->oSource->fetch(\PDO::FETCH_ASSOC);
        } elseif ($this->oSource instanceof \CI_DB_mysqli_result) {
            $oRow = $this->oSource->unbuffered_row();
        }

        return is_callable($this->cFormatter) ? call_user_func($this->cFormatter, $oRow) : $oRow;
    }