libsqlite
Version:
Legacy SQLITE library for browser
1,223 lines (1,102 loc) • 42.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.CursorLoader = exports.CursorFactory = exports.SQLiteCursor = exports.ExecCursor = exports.Cursor = exports.SQLiteCursorDriver = undefined;
var _get2 = require("babel-runtime/helpers/get");
var _get3 = _interopRequireDefault(_get2);
var _objectDestructuringEmpty2 = require("babel-runtime/helpers/objectDestructuringEmpty");
var _objectDestructuringEmpty3 = _interopRequireDefault(_objectDestructuringEmpty2);
var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of");
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn");
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require("babel-runtime/helpers/inherits");
var _inherits3 = _interopRequireDefault(_inherits2);
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require("babel-runtime/helpers/createClass");
var _createClass3 = _interopRequireDefault(_createClass2);
var _map = require("babel-runtime/core-js/map");
var _map2 = _interopRequireDefault(_map);
var _dataset = require("hjs-content/lib/dataset");
var _loader = require("hjs-content/lib/loader");
var _event = require("./event");
var _query = require("./query");
var _helper = require("./helper");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var DRIVERS = new _map2.default(); /** @babel */
var SQLiteCursorDriver = exports.SQLiteCursorDriver = function () {
function SQLiteCursorDriver() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
_ref$database = _ref.database,
database = _ref$database === undefined ? null : _ref$database,
_ref$editTable = _ref.editTable,
editTable = _ref$editTable === undefined ? null : _ref$editTable,
_ref$query = _ref.query,
query = _ref$query === undefined ? null : _ref$query;
(0, _classCallCheck3.default)(this, SQLiteCursorDriver);
this.mDatabase = database;
this.mEditTable = editTable;
this.mSql = query;
}
(0, _createClass3.default)(SQLiteCursorDriver, [{
key: "getDatabase",
value: function getDatabase() {
return this.mDatabase;
}
}, {
key: "getQuery",
value: function getQuery() {
return this.mQuery;
}
}, {
key: "getStatement",
value: function getStatement() {
return this.mSql;
}
}, {
key: "getTableName",
value: function getTableName() {
return this.mEditTable;
}
}, {
key: "notifyError",
value: function notifyError(error) {
this.mDatabase.notifyListeners(new _event.SQLiteEvent({
source: this.mDatabase,
id: _event.SQLiteEvent.ERROR,
data: error
}));
}
}, {
key: "query",
value: function query() {
var factory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
var _this = this;
var bindArgs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var adapter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
var database = this.mDatabase;
var table = this.mEditTable;
var query = new _query.SQLiteQuery({
database: database,
editTable: table,
query: this.mSql,
bindArgs: bindArgs
});
query.bindAllArgsAsStrings(selectionArgs);
query.execute(new _event.SQLiteTransactionListener({
onBegin: function onBegin(session) {
if (adapter) {
adapter.begin(session);
}
},
onCommit: function onCommit(session, resultSet) {
var cursor = null;
if (!factory) {
cursor = new SQLiteCursor({
driver: _this, table: table, query: query, bindArgs: bindArgs, resultSet: resultSet
});
} else {
cursor = factory.newCursor({
driver: _this, editTable: table, query: query, bindArgs: bindArgs, resultSet: resultSet
});
}
if (cursor) {
if (adapter) {
adapter.commit(session, cursor);
} else {
_this.mDatabase.notifyListeners(new _event.SQLiteEvent({
source: _this.mDatabase,
id: _event.SQLiteEvent.EXECUTE,
data: cursor
}));
}
} else {
_this.notifyError(new ReferenceError("SQLException null cursor"));
}
},
onRollback: function onRollback(session, error) {
console.log("GET ERROR " + error.message);
if (adapter && adapter.canCatchError()) {
adapter.rollback(session, error);
} else {
_this.notifyError(error);
}
}
}));
this.mQuery = query;
}
}, {
key: "setBindArguments",
value: function setBindArguments(bindArgs) {
this.mQuery.bindAllArgsAsStrings(bindArgs);
}
}, {
key: "toString",
value: function toString() {
return "SQLiteCursorDriver: " + this.mSql;
}
}], [{
key: "getDriver",
value: function getDriver(query) {
return DRIVERS.get(query) || null;
}
}, {
key: "setDriver",
value: function setDriver(query, driver) {
if (!DRIVERS.has(query)) {
DRIVERS.set(query, driver);
}
return DRIVERS.get(query);
}
}]);
return SQLiteCursorDriver;
}();
var Cursor = exports.Cursor = function () {
function Cursor() {
(0, _classCallCheck3.default)(this, Cursor);
this.mPos = -1;
this.mClosed = false;
this.mSelfObserver = null;
this.mSelfObserverRegistered = false;
this.mDataSetObservable = new _dataset.DataSetObservable();
this.mContentObservable = new _dataset.ContentObservable();
}
(0, _createClass3.default)(Cursor, [{
key: "checkPosition",
value: function checkPosition() {
if (this.mPos === -1 || this.getCount() === this.mPos) {
throw new RangeError("CursorIndexOutOfBoundsException At " + this.mPos + "/" + this.getCount());
}
}
}, {
key: "close",
value: function close() {
this.mClosed = true;
this.mContentObservable.unregisterAll();
this.onDeactivateOrClose();
}
}, {
key: "copyStringToBuffer",
value: function copyStringToBuffer() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var buffer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var result = this.getString(columnIndex);
if (result) {
var len = result.length;
for (var i = 0; i < len; i++) {
buffer[i] = result.getCharAt(i);
}
}
}
}, {
key: "finalize",
value: function finalize() {
if (this.mSelfObserver && this.mSelfObserverRegistered) {
//mContentResolver.unregisterContentObserver(mSelfObserver);
}
if (!this.mClosed) {
this.close();
}
}
}, {
key: "getBlob",
value: function getBlob() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return null;
}
}, {
key: "getColumnCount",
value: function getColumnCount() {
var columns = this.getColumnNames();
return columns.length;
}
}, {
key: "getColumnIndex",
value: function getColumnIndex() {
var columnName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
var periodIndex = columnName.lastIndexOf('.');
if (periodIndex !== -1) {
console.log("requesting column name with table name -- " + columnName);
columnName = columnName.substring(periodIndex + 1);
}
var columnNames = this.getColumnNames();
var length = columnNames.length;
for (var i = 0; i < length; i++) {
var column = columnNames[i];
if (column.toLowerCase() === columnName.toLowerCase()) {
return i;
}
}
if (this.getCount() > 0) {
console.log("Unknown column " + columnName);
}
return -1;
}
}, {
key: "getColumnIndexOrThrow",
value: function getColumnIndexOrThrow() {
var columnName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
var index = this.getColumnIndex(columnName);
if (index < 0) {
throw new ReferenceError("IllegalArgumentException column '" + columnName + "' does not exist");
}
return index;
}
}, {
key: "getColumnName",
value: function getColumnName() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var columns = this.getColumnNames();
return columns[columnIndex] || null;
}
}, {
key: "getColumnNames",
value: function getColumnNames() {
return null;
}
}, {
key: "getCount",
value: function getCount() {
return 0;
}
}, {
key: "getDouble",
value: function getDouble() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return 0.0;
}
}, {
key: "getFloat",
value: function getFloat() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return 0;
}
}, {
key: "getInt",
value: function getInt() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return 0;
}
}, {
key: "getLong",
value: function getLong() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return 0;
}
}, {
key: "getPosition",
value: function getPosition() {
return this.mPos;
}
}, {
key: "getShort",
value: function getShort() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return 0;
}
}, {
key: "getString",
value: function getString() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return null;
}
}, {
key: "getType",
value: function getType() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return Cursor.FIELD_TYPE_STRING;
}
}, {
key: "getUpdatedField",
value: function getUpdatedField() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return null;
}
}, {
key: "isAfterLast",
value: function isAfterLast() {
var count = this.getCount();
if (count === 0) {
return true;
}
return this.mPos === count;
}
}, {
key: "isBeforeFirst",
value: function isBeforeFirst() {
var count = this.getCount();
if (count === 0) {
return true;
}
return this.mPos === -1;
}
}, {
key: "isClosed",
value: function isClosed() {
return this.mClosed;
}
}, {
key: "isFieldUpdated",
value: function isFieldUpdated() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return false;
}
}, {
key: "isFirst",
value: function isFirst() {
return this.mPos === 0 && this.getCount() !== 0;
}
}, {
key: "isLast",
value: function isLast() {
var count = this.getCount();
return this.mPos === count - 1 && count !== 0;
}
}, {
key: "isNull",
value: function isNull() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return false;
}
}, {
key: "move",
value: function move() {
var offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return this.moveToPosition(this.mPos + offset);
}
}, {
key: "moveToFirst",
value: function moveToFirst() {
return this.moveToPosition(0);
}
}, {
key: "moveToLast",
value: function moveToLast() {
return this.moveToPosition(this.getCount() - 1);
}
}, {
key: "moveToNext",
value: function moveToNext() {
return this.moveToPosition(this.mPos + 1);
}
}, {
key: "moveToPosition",
value: function moveToPosition() {
var position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var count = this.getCount();
if (position >= count) {
this.mPos = count;
return false;
}
if (position < 0) {
this.mPos = -1;
return false;
}
if (position === this.mPos) {
return true;
}
var result = this.onMove(this.mPos, position);
if (!result) {
this.mPos = -1;
} else {
this.mPos = position;
}
return result;
}
}, {
key: "moveToPrevious",
value: function moveToPrevious() {
return this.moveToPosition(this.mPos - 1);
}
}, {
key: "onChange",
value: function onChange() {
var selfChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
this.mContentObservable.dispatchChange(selfChange, null);
}
}, {
key: "onDeactivateOrClose",
value: function onDeactivateOrClose() {
if (this.mSelfObserver) {
this.mSelfObserverRegistered = false;
}
this.mDataSetObservable.notifyInvalidated();
}
}, {
key: "onMove",
value: function onMove() {
var oldPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
var newPosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
return true;
}
}, {
key: "registerContentObserver",
value: function registerContentObserver(observer) {
this.mContentObservable.registerObserver(observer);
}
}, {
key: "registerDataSetObserver",
value: function registerDataSetObserver(observer) {
this.mDataSetObservable.registerObserver(observer);
}
}, {
key: "requery",
value: function requery() {
if (this.mSelfObserver && this.mSelfObserverRegistered === false) {
this.mSelfObserverRegistered = true;
}
this.mDataSetObservable.notifyChanged();
return true;
}
}, {
key: "unregisterContentObserver",
value: function unregisterContentObserver(observer) {
if (!this.mClosed) {
this.mContentObservable.unregisterObserver(observer);
}
}
}, {
key: "unregisterDataSetObserver",
value: function unregisterDataSetObserver(observer) {
this.mDataSetObservable.unregisterObserver(observer);
}
}]);
return Cursor;
}();
Cursor.FIELD_TYPE_NULL = 0;
Cursor.FIELD_TYPE_INTEGER = 1;
Cursor.FIELD_TYPE_FLOAT = 2;
Cursor.FIELD_TYPE_STRING = 3;
Cursor.FIELD_TYPE_BLOB = 4;
var ExecCursor = exports.ExecCursor = function (_Cursor) {
(0, _inherits3.default)(ExecCursor, _Cursor);
function ExecCursor() {
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
database = _ref2.database,
_ref2$tableInfo = _ref2.tableInfo,
tableInfo = _ref2$tableInfo === undefined ? null : _ref2$tableInfo,
resultSet = _ref2.resultSet;
(0, _classCallCheck3.default)(this, ExecCursor);
var _this2 = (0, _possibleConstructorReturn3.default)(this, (ExecCursor.__proto__ || (0, _getPrototypeOf2.default)(ExecCursor)).call(this));
if (!database) {
throw new ReferenceError("IllegalArgumentException database object cannot be null");
}
if (!resultSet) {
throw new ReferenceError("IllegalArgumentException resultSet object cannot be null");
}
_this2.mColumnNameMap = null;
_this2.mDatabase = database;
_this2.mResultSet = resultSet;
var table = tableInfo;
if (table) {
_this2.mColumns = table.getColumnNames();
} else {
_this2.mColumns = [];
var len = _this2.mResultSet.rows.length;
for (var i = 0; i < len; i++) {
var row = _this2.mResultSet.rows[i];
for (var p in row) {
if (row.hasOwnProperty(p)) {
_this2.mColumns.push(p);
}
}
}
}
return _this2;
}
(0, _createClass3.default)(ExecCursor, [{
key: "fillWindow",
value: function fillWindow() {
var requiredPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var len = this.mResultSet.rows.length;
if (this.mCount === SQLiteCursor.NO_COUNT) {
this.mRows = [];
var num = len;
var rows = this.mResultSet.rows;
for (var i = requiredPos; i < len; i++) {
var row = rows[i];
if (row) {
this.mRows[i] = row;
} else {
num--;
}
}
this.mCount = num;
} else {
this.mCount = len - requiredPos;
this.mRows = this.mRows.splice(requiredPos, this.mCount);
}
console.log("received count(*) from fillWindow: " + this.mCount);
}
}, {
key: "getBlob",
value: function getBlob() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
var value = this.getValue(columnIndex);
return _helper.Hex.hexToArrayBuffer(value);
}
}, {
key: "getColumnIndex",
value: function getColumnIndex() {
var columnName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
if (!this.mColumnNameMap) {
var columns = this.mColumns;
var columnCount = columns.length;
var map = {};
var rows = this.mResultSet.rows;
for (var _i = 0; _i < columnCount; _i++) {
map[columns[_i]] = _i;
}
this.mColumnNameMap = map;
}
var periodIndex = columnName.lastIndexOf('.');
if (periodIndex !== -1) {
console.log("requesting column name with table name -- " + columnName);
columnName = columnName.substring(periodIndex + 1);
}
var i = this.mColumnNameMap[columnName];
if (i !== null || i !== undefined) {
return i;
}
return -1;
}
}, {
key: "getColumnNames",
value: function getColumnNames() {
return this.mColumns;
}
}, {
key: "getCount",
value: function getCount() {
if (this.mCount === SQLiteCursor.NO_COUNT) {
this.fillWindow(0);
}
return this.mCount;
}
}, {
key: "getDatabase",
value: function getDatabase() {
return this.mDatabase;
}
}, {
key: "getDouble",
value: function getDouble() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return this.getValue(columnIndex);
}
}, {
key: "getFloat",
value: function getFloat() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return this.getValue(columnIndex);
}
}, {
key: "getInt",
value: function getInt() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return this.getValue(columnIndex);
}
}, {
key: "getLong",
value: function getLong() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return this.getValue(columnIndex);
}
}, {
key: "getShort",
value: function getShort() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return this.getValue(columnIndex);
}
}, {
key: "getString",
value: function getString() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return this.getValue(columnIndex);
}
}, {
key: "getType",
value: function getType() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return _helper.DatabaseUtils.getTypeOfObject(this.getValue(columnIndex));
}
}, {
key: "getValue",
value: function getValue() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var row = this.mResultSet.rows[this.mPos];
return row[this.mColumns[columnIndex]];
}
}, {
key: "insertId",
value: function insertId() {
try {
return this.mResultSet.insertId;
} catch (e) {
return -1;
}
}
}, {
key: "isBlob",
value: function isBlob() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return this.getType(columnIndex) === Cursor.FIELD_TYPE_BLOB;
}
}, {
key: "isFloat",
value: function isFloat() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return this.getType(columnIndex) === Cursor.FIELD_TYPE_FLOAT;
}
}, {
key: "isInt",
value: function isInt() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return this.getType(columnIndex) === Cursor.FIELD_TYPE_INTEGER;
}
}, {
key: "isNull",
value: function isNull() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return this.getType(columnIndex) === Cursor.FIELD_TYPE_NULL;
}
}, {
key: "isString",
value: function isString() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return this.getType(columnIndex) === Cursor.FIELD_TYPE_STRING;
}
}, {
key: "onMove",
value: function onMove() {
var oldPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
var newPosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
if (!this.mRows || newPosition >= this.mRows.length) {
this.fillWindow(newPosition);
}
return true;
}
}, {
key: "requery",
value: function requery() {
if (this.mRows) {
this.mRows = [];
}
this.mPos = -1;
this.mCount = SQLiteCursor.NO_COUNT;
}
}, {
key: "rowsAffected",
value: function rowsAffected() {
return this.mResultSet.rowsAffected;
}
}, {
key: "setWindow",
value: function setWindow() {
var resultSet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
this.mResultSet = resultSet;
this.mCount = SQLiteCursor.NO_COUNT;
}
}]);
return ExecCursor;
}(Cursor);
var SQLiteCursor = exports.SQLiteCursor = function (_Cursor2) {
(0, _inherits3.default)(SQLiteCursor, _Cursor2);
function SQLiteCursor() {
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
driver = _ref3.driver,
editTable = _ref3.editTable,
query = _ref3.query,
resultSet = _ref3.resultSet;
(0, _classCallCheck3.default)(this, SQLiteCursor);
var _this3 = (0, _possibleConstructorReturn3.default)(this, (SQLiteCursor.__proto__ || (0, _getPrototypeOf2.default)(SQLiteCursor)).call(this));
if (!query) {
throw new ReferenceError("IllegalArgumentException query object cannot be null");
}
if (!resultSet) {
throw new ReferenceError("IllegalArgumentException resultSet object cannot be null");
}
_this3.mColumnNameMap = null;
_this3.mDriver = driver;
_this3.mEditTable = editTable;
_this3.mQuery = query;
_this3.mResultSet = resultSet;
_this3.mColumns = query.getColumnNames();
return _this3;
}
(0, _createClass3.default)(SQLiteCursor, [{
key: "fillWindow",
value: function fillWindow() {
var requiredPos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var len = this.mResultSet.rows.length;
if (this.mCount === SQLiteCursor.NO_COUNT) {
this.mRows = [];
var num = len;
var rows = this.mResultSet.rows;
for (var i = requiredPos; i < len; i++) {
var row = rows[i];
if (row) {
this.mRows[i] = rows[i];
} else {
num--;
}
}
this.mCount = num;
} else {
this.mCount = len - requiredPos;
this.mRows = this.mRows.splice(requiredPos, this.mCount);
}
console.log("received count(*) from fillWindow: " + this.mCount);
}
}, {
key: "getBlob",
value: function getBlob() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
var value = this.getValue(columnIndex);
return _helper.Hex.hexToArrayBuffer(value);
}
}, {
key: "getColumnIndex",
value: function getColumnIndex() {
var columnName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
if (!this.mColumnNameMap) {
var columns = this.mColumns;
var columnCount = columns.length;
var map = {};
var rows = this.mResultSet.rows;
for (var _i2 = 0; _i2 < columnCount; _i2++) {
map[columns[_i2]] = _i2;
}
this.mColumnNameMap = map;
}
var periodIndex = columnName.lastIndexOf('.');
if (periodIndex !== -1) {
console.log("requesting column name with table name -- " + columnName);
columnName = columnName.substring(periodIndex + 1);
}
var i = this.mColumnNameMap[columnName];
if (i !== null || i !== undefined) {
return i;
}
return -1;
}
}, {
key: "getColumnNames",
value: function getColumnNames() {
return this.mColumns;
}
}, {
key: "getCount",
value: function getCount() {
if (this.mCount === SQLiteCursor.NO_COUNT) {
this.fillWindow(0);
}
return this.mCount;
}
}, {
key: "getDouble",
value: function getDouble() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return this.getValue(columnIndex);
}
}, {
key: "getFloat",
value: function getFloat() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return this.getValue(columnIndex);
}
}, {
key: "getInt",
value: function getInt() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return this.getValue(columnIndex);
}
}, {
key: "getLong",
value: function getLong() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return this.getValue(columnIndex);
}
}, {
key: "getShort",
value: function getShort() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return this.getValue(columnIndex);
}
}, {
key: "getString",
value: function getString() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return this.getValue(columnIndex);
}
}, {
key: "getType",
value: function getType() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return _helper.DatabaseUtils.getTypeOfObject(this.getValue(columnIndex));
}
}, {
key: "getValue",
value: function getValue() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var row = this.mResultSet.rows[this.mPos];
return row[this.mColumns[columnIndex]];
}
}, {
key: "insertId",
value: function insertId() {
try {
return this.mResultSet.insertId;
} catch (e) {
return -1;
}
}
}, {
key: "isBlob",
value: function isBlob() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return this.getType(columnIndex) === Cursor.FIELD_TYPE_BLOB;
}
}, {
key: "isFloat",
value: function isFloat() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return this.getType(columnIndex) === Cursor.FIELD_TYPE_FLOAT;
}
}, {
key: "isInt",
value: function isInt() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return this.getType(columnIndex) === Cursor.FIELD_TYPE_INTEGER;
}
}, {
key: "isNull",
value: function isNull() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return this.getType(columnIndex) === Cursor.FIELD_TYPE_NULL;
}
}, {
key: "isString",
value: function isString() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
return this.getType(columnIndex) === Cursor.FIELD_TYPE_STRING;
}
}, {
key: "onMove",
value: function onMove() {
var oldPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
var newPosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
if (!this.mRows || newPosition >= this.mRows.length) {
this.fillWindow(newPosition);
}
return true;
}
}, {
key: "requery",
value: function requery() {
if (this.mRows) {
this.mRows = [];
}
this.mPos = -1;
this.mCount = SQLiteCursor.NO_COUNT;
}
}, {
key: "rowsAffected",
value: function rowsAffected() {
return this.mResultSet.rowsAffected;
}
}, {
key: "setSelectionArguments",
value: function setSelectionArguments() {
var selectionArgs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
this.mDriver.setBindArguments(selectionArgs);
}
}, {
key: "setWindow",
value: function setWindow() {
var resultSet = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
this.mResultSet = resultSet;
this.mCount = SQLiteCursor.NO_COUNT;
}
}]);
return SQLiteCursor;
}(Cursor);
SQLiteCursor.NO_COUNT = -1;
var CursorFactory = exports.CursorFactory = function (_SQLiteListener) {
(0, _inherits3.default)(CursorFactory, _SQLiteListener);
function CursorFactory() {
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
_ref4$onHandleEvent = _ref4.onHandleEvent,
onHandleEvent = _ref4$onHandleEvent === undefined ? null : _ref4$onHandleEvent,
_ref4$newCursor = _ref4.newCursor,
newCursor = _ref4$newCursor === undefined ? null : _ref4$newCursor;
(0, _classCallCheck3.default)(this, CursorFactory);
var _this4 = (0, _possibleConstructorReturn3.default)(this, (CursorFactory.__proto__ || (0, _getPrototypeOf2.default)(CursorFactory)).call(this, { onHandleEvent: onHandleEvent }));
if (newCursor) {
_this4.newCursor = newCursor;
}
return _this4;
}
(0, _createClass3.default)(CursorFactory, [{
key: "newCursor",
value: function newCursor() {
var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
(0, _objectDestructuringEmpty3.default)(_ref5);
return new SQLiteCursor({});
}
}, {
key: "getDatabase",
value: function getDatabase() {
return this.mQuery.getDatabase();
}
}, {
key: "getDouble",
value: function getDouble() {
var columnIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this.checkPosition();
return this.getValue(columnIndex);
}
}]);
return CursorFactory;
}(_event.SQLiteListener);
var CursorLoader = exports.CursorLoader = function (_AsyncTaskLoader) {
(0, _inherits3.default)(CursorLoader, _AsyncTaskLoader);
function CursorLoader() {
var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
id = _ref6.id,
context = _ref6.context,
listener = _ref6.listener,
executor = _ref6.executor,
database = _ref6.database,
_ref6$editTable = _ref6.editTable,
editTable = _ref6$editTable === undefined ? "" : _ref6$editTable,
_ref6$projection = _ref6.projection,
projection = _ref6$projection === undefined ? [] : _ref6$projection,
_ref6$selection = _ref6.selection,
selection = _ref6$selection === undefined ? "" : _ref6$selection,
_ref6$selectionArgs = _ref6.selectionArgs,
selectionArgs = _ref6$selectionArgs === undefined ? [] : _ref6$selectionArgs,
_ref6$groupBy = _ref6.groupBy,
groupBy = _ref6$groupBy === undefined ? "" : _ref6$groupBy,
_ref6$having = _ref6.having,
having = _ref6$having === undefined ? "" : _ref6$having,
_ref6$sortOrder = _ref6.sortOrder,
sortOrder = _ref6$sortOrder === undefined ? "" : _ref6$sortOrder,
_ref6$limit = _ref6.limit,
limit = _ref6$limit === undefined ? "" : _ref6$limit;
(0, _classCallCheck3.default)(this, CursorLoader);
var _this5 = (0, _possibleConstructorReturn3.default)(this, (CursorLoader.__proto__ || (0, _getPrototypeOf2.default)(CursorLoader)).call(this, { id: id, context: context, listener: listener, executor: executor }));
_this5.mDatabase = database;
_this5.mTables = editTable;
_this5.mProjection = projection;
_this5.mSelection = selection;
_this5.mSelectionArgs = selectionArgs;
_this5.mGroupBy = groupBy;
_this5.mHaving = having;
_this5.mSortOrder = sortOrder;
_this5.mLimit = limit;
return _this5;
}
(0, _createClass3.default)(CursorLoader, [{
key: "deliverResult",
value: function deliverResult() {
var cursor = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
if (this.isReset()) {
if (cursor) {
cursor.close();
}
return;
}
var oldCursor = this.mCursor;
this.mCursor = cursor;
if (this.isStarted()) {
(0, _get3.default)(CursorLoader.prototype.__proto__ || (0, _getPrototypeOf2.default)(CursorLoader.prototype), "deliverResult", this).call(this, cursor);
}
if (oldCursor && oldCursor !== cursor && !oldCursor.isClosed()) {
oldCursor.close();
}
}
}, {
key: "loadInBackground",
value: function loadInBackground(task) {
if (this.isLoadInBackgroundCanceled()) {
throw new Error("OperationCanceledException");
}
var qb = new _query.SQLiteQueryBuilder();
qb.setTables(this.mTables);
qb.setDistinct(this.mDistinct);
qb.query({
database: this.mDatabase,
projectionIn: this.mProjection,
selection: this.mSelection,
selectionArgs: this.mSelectionArgs,
groupBy: this.mGroupBy,
having: this.mHaving,
sortOrder: this.mSortOrder,
limit: this.mLimit,
adapter: new SQLiteTransactionAdapter({
begin: function begin(session) {},
commit: function commit(session, cursor) {
cursor.getCount();
task.notify(cursor);
},
rollback: function rollback(session, error) {
task.cancel();
}
})
});
}
}, {
key: "onCanceled",
value: function onCanceled() {
var cursor = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
if (cursor && !cursor.isClosed()) {
cursor.close();
}
}
}, {
key: "onReset",
value: function onReset() {
(0, _get3.default)(CursorLoader.prototype.__proto__ || (0, _getPrototypeOf2.default)(CursorLoader.prototype), "onReset", this).call(this);
this.onStopLoading();
if (this.mCursor && !this.mCursor.isClosed()) {
this.mCursor.close();
}
this.mCursor = null;
}
}, {
key: "onStartLoading",
value: function onStartLoading() {
if (this.mCursor) {
this.deliverResult(this.mCursor);
}
if (this.takeContentChanged() || !this.mCursor) {
this.forceLoad();
}
}
}, {
key: "onStopLoading",
value: function onStopLoading() {
this.cancelLoad();
}
}]);
return CursorLoader;
}(_loader.AsyncTaskLoader);