0
1
Fork 0
hedera-web-mindshore/js/db/result.js

94 lines
1.6 KiB
JavaScript
Raw Normal View History

/**
* This class stores a database result.
2016-12-20 09:32:17 +00:00
*/
2016-09-26 09:28:47 +00:00
module.exports = new Class
({
/**
* Initilizes the result object.
2016-12-20 09:32:17 +00:00
*/
initialize: function (result)
{
2017-04-08 11:42:27 +00:00
Object.assign (this, {
data: result.data,
tables: result.tables,
columns: result.columns,
row: -1
});
if (this.columns)
{
this.columnMap = {};
for (var i = 0; i < this.columns.length; i++)
this.columnMap[this.columns[i].name] = i;
}
else
this.columnMap = null;
}
/**
* Gets a value from de result.
*
2017-04-21 10:53:15 +00:00
* @param {string} columnName The column name
* @return {Object} The cell value
2016-12-20 09:32:17 +00:00
*/
,get: function (columnName)
{
var columnIndex = this.columnMap[columnName];
return this.data[this.row][columnIndex];
}
2017-04-08 11:42:27 +00:00
/**
* 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
*/
,fetchObject: function ()
{
if (!this.next ())
return null;
2017-04-21 10:53:15 +00:00
return this.getObject (this.row);
2017-04-08 11:42:27 +00:00
}
/**
* Returns the current row as an object.
*
2017-04-21 10:53:15 +00:00
* @param {number} rowIndex The row index
2017-04-08 11:42:27 +00:00
* @return {Object} The row or %null if there are no more rows
*/
2017-04-21 10:53:15 +00:00
,getObject: function (rowIndex)
2017-04-08 11:42:27 +00:00
{
2017-04-21 10:53:15 +00:00
var row = this.data[rowIndex];
2017-04-08 11:42:27 +00:00
var cols = this.columns;
var object = {};
for (var i = 0; i < cols.length; i++)
object[cols[i].name] = row[i];
return object;
}
/**
* Resets the result iterator.
2016-12-20 09:32:17 +00:00
*/
,reset: function ()
{
this.row = -1;
}
/**
* Moves the internal iterator to the next row.
2016-12-20 09:32:17 +00:00
*/
,next: function ()
{
this.row++;
if (this.row >= this.data.length)
return false;
return true;
}
});