/** * This class stores a database result. */ module.exports = new Class ({ /** * Initilizes the result object. */ initialize: function (result) { Object.assign (this, { data: result.data, tables: result.tables, columns: result.columns, row: -1 }); } /** * Moves the pointer to the next row and returns it as an object. * * @return {Object} The row or %null if there are no more rows */ ,fetchRow: function () { if (!this.next ()) return null; return this.data[this.row]; } /** * Returns the current row as an object. * * @param {number} rowIndex The row index * @return {Object} The row or %null if there are no more rows */ ,getRow: function (rowIndex) { return this.data[rowIndex]; } /** * Resets the result iterator. */ ,reset: function () { this.row = -1; } /** * Moves the internal iterator to the next row. */ ,next: function () { this.row++; if (this.row >= this.data.length) return false; return true; } });