Use JS as generated from CS in Android

This commit is contained in:
Chris Brody 2012-04-22 08:22:47 +02:00
parent 2d8f867990
commit 03242c7359
2 changed files with 212 additions and 256 deletions

View File

@ -1,12 +1,7 @@
(function() { (function() {
var root; var SQLitePlugin, SQLitePluginTransaction, get_unique_id, root, transaction_callback_queue, transaction_queue;
root = this; root = this;
//root.SQLitePlugin = (function() { SQLitePlugin = function(dbPath, openSuccess, openError) {
console.log("root.SQLitePlugin");
SQLitePlugin.prototype.openDBs = {};
function SQLitePlugin(dbPath, openSuccess, openError)
{
console.log("SQLitePlugin"); console.log("SQLitePlugin");
this.dbPath = dbPath; this.dbPath = dbPath;
this.openSuccess = openSuccess; this.openSuccess = openSuccess;
@ -15,180 +10,149 @@
throw new Error("Cannot create a SQLitePlugin instance without a dbPath"); throw new Error("Cannot create a SQLitePlugin instance without a dbPath");
} }
this.openSuccess || (this.openSuccess = function() { this.openSuccess || (this.openSuccess = function() {
console.log("DB opened: " + dbPath); return console.log("DB opened: " + dbPath);
}); });
this.openError || (this.openError = function(e) { this.openError || (this.openError = function(e) {
console.log(e.message); return console.log(e.message);
}); });
this.open(this.openSuccess, this.openError); this.open(this.openSuccess, this.openError);
} };
SQLitePlugin.prototype.openDBs = {};
SQLitePlugin.prototype.transaction = function(fn, error, success) SQLitePlugin.prototype.transaction = function(fn, error, success) {
{
console.log("SQLitePlugin.prototype.transaction");
var t; var t;
t = new root.SQLitePluginTransaction(this.dbPath); t = new SQLitePluginTransaction(this.dbPath);
fn(t); fn(t);
return t.complete(success, error); return t.complete(success, error);
}; };
SQLitePlugin.prototype.open = function(success, error) {
SQLitePlugin.prototype.open = function(success, error)
{
console.log("SQLitePlugin.prototype.open");
var opts; var opts;
console.log("SQLitePlugin.prototype.open");
opts = void 0;
if (!(this.dbPath in this.openDBs)) { if (!(this.dbPath in this.openDBs)) {
this.openDBs[this.dbPath] = true; this.openDBs[this.dbPath] = true;
PhoneGap.exec(success, error, "SQLitePlugin", "open", [this.dbPath]); return PhoneGap.exec(success, error, "SQLitePlugin", "open", [this.dbPath]);
} }
}; };
SQLitePlugin.prototype.close = function(success, error) {
SQLitePlugin.prototype.close = function(success, error)
{
console.log("SQLitePlugin.prototype.close");
var opts; var opts;
console.log("SQLitePlugin.prototype.close");
opts = void 0;
if (this.dbPath in this.openDBs) { if (this.dbPath in this.openDBs) {
delete this.openDBs[this.dbPath]; delete this.openDBs[this.dbPath];
PhoneGap.exec(null, null, "SQLitePlugin", "close", [this.dbPath]); return PhoneGap.exec(null, null, "SQLitePlugin", "close", [this.dbPath]);
} }
}; };
return SQLitePlugin; get_unique_id = function() {
//})(); var id, id2;
root.SQLitePlugin = SQLitePlugin; id = new Date().getTime();
get_unique_id = function() id2 = new Date().getTime();
{ while (id === id2) {
var id = new Date().getTime();
var id2 = new Date().getTime();
while(id === id2)
{
id2 = new Date().getTime(); id2 = new Date().getTime();
} }
return id2+'000'; return id2 + "000";
} };
transaction_queue = []; transaction_queue = [];
transaction_callback_queue = new Object(); transaction_callback_queue = {};
//root.SQLitePluginTransaction = (function() { SQLitePluginTransaction = function(dbPath) {
console.log("root.SQLitePluginTransaction");
function SQLitePluginTransaction(dbPath)
{
console.log("root.SQLitePluginTransaction.SQLitePluginTransaction");
this.dbPath = dbPath; this.dbPath = dbPath;
this.executes = []; this.executes = [];
this.trans_id = get_unique_id(); this.trans_id = get_unique_id();
this.__completed = false; this.__completed = false;
this.__submitted = false; this.__submitted = false;
//this.optimization_no_nested_callbacks: default is true.
//if set to true large batches of queries within a transaction will be much faster but
//you will lose the ability to do multi level nesting of executeSQL callbacks
this.optimization_no_nested_callbacks = true; this.optimization_no_nested_callbacks = true;
console.log("root.SQLitePluginTransaction - this.trans_id:"+this.trans_id); console.log("SQLitePluginTransaction - this.trans_id:" + this.trans_id);
transaction_queue[this.trans_id] = []; transaction_queue[this.trans_id] = [];
transaction_callback_queue[this.trans_id] = new Object(); transaction_callback_queue[this.trans_id] = new Object();
} };
SQLitePluginTransaction.queryCompleteCallback = function(transId, queryId, result) SQLitePluginTransaction.queryCompleteCallback = function(transId, queryId, result) {
{ var query, x;
console.log("SQLitePluginTransaction.queryCompleteCallback"); console.log("SQLitePluginTransaction.queryCompleteCallback");
var query = null; query = null;
for (var x in transaction_queue[transId]) for (x in transaction_queue[transId]) {
{ if (transaction_queue[transId][x]["query_id"] === queryId) {
if(transaction_queue[transId][x]['query_id'] == queryId)
{
query = transaction_queue[transId][x]; query = transaction_queue[transId][x];
if(transaction_queue[transId].length == 1) if (transaction_queue[transId].length === 1) {
transaction_queue[transId] = []; transaction_queue[transId] = [];
else } else {
transaction_queue[transId].splice(x, 1); transaction_queue[transId].splice(x, 1);
}
break; break;
} }
} }
if (query && query["callback"]) return query["callback"](result);
// if(query) };
// console.log("SQLitePluginTransaction.completeCallback---query:"+query['query']); SQLitePluginTransaction.queryErrorCallback = function(transId, queryId, result) {
if(query && query['callback']) var query, x;
{ query = null;
query['callback'](result) for (x in transaction_queue[transId]) {
} if (transaction_queue[transId][x]["query_id"] === queryId) {
}
SQLitePluginTransaction.queryErrorCallback = function(transId, queryId, result)
{
var query = null;
for (var x in transaction_queue[transId])
{
if(transaction_queue[transId][x]['query_id'] == queryId)
{
query = transaction_queue[transId][x]; query = transaction_queue[transId][x];
if(transaction_queue[transId].length == 1) if (transaction_queue[transId].length === 1) {
transaction_queue[transId] = []; transaction_queue[transId] = [];
else } else {
transaction_queue[transId].splice(x, 1); transaction_queue[transId].splice(x, 1);
}
break; break;
} }
} }
//if(query) if (query && query["err_callback"]) return query["err_callback"](result);
// console.log("SQLitePluginTransaction.queryErrorCallback---query:"+query['query']); };
if(query && query['err_callback']) SQLitePluginTransaction.txCompleteCallback = function(transId) {
query['err_callback'](result) if (typeof transId !== "undefined") {
if (transId && transaction_callback_queue[transId] && transaction_callback_queue[transId]["success"]) {
return transaction_callback_queue[transId]["success"]();
} }
SQLitePluginTransaction.txCompleteCallback = function(transId) } else {
{ return console.log("SQLitePluginTransaction.txCompleteCallback---transId = NULL");
if(typeof transId != 'undefined')
{
if(transId && transaction_callback_queue[transId] && transaction_callback_queue[transId]['success'])
{
transaction_callback_queue[transId]['success']();
} }
};
SQLitePluginTransaction.txErrorCallback = function(transId, error) {
// delete transaction_queue[transId]; if (typeof transId !== "undefined") {
// delete transaction_callback_queue[transId]; console.log("SQLitePluginTransaction.txErrorCallback---transId:" + transId);
if (transId && transaction_callback_queue[transId]["error"]) {
transaction_callback_queue[transId]["error"](error);
} }
else
console.log("SQLitePluginTransaction.txCompleteCallback---transId = NULL");
}
SQLitePluginTransaction.txErrorCallback = function(transId, error)
{
if(typeof transId != 'undefined')
{
console.log("SQLitePluginTransaction.txErrorCallback---transId:"+transId);
if(transId && transaction_callback_queue[transId]['error'])
transaction_callback_queue[transId]['error'](error);
delete transaction_queue[transId]; delete transaction_queue[transId];
delete transaction_callback_queue[transId]; return delete transaction_callback_queue[transId];
} else {
return console.log("SQLitePluginTransaction.txErrorCallback---transId = NULL");
} }
else };
console.log("SQLitePluginTransaction.txErrorCallback---transId = NULL"); SQLitePluginTransaction.prototype.add_to_transaction = function(trans_id, query, params, callback, err_callback) {
var new_query;
new_query = new Object();
new_query["trans_id"] = trans_id;
if (callback || !this.optimization_no_nested_callbacks) {
new_query["query_id"] = get_unique_id();
} else {
if (this.optimization_no_nested_callbacks) new_query["query_id"] = "";
} }
SQLitePluginTransaction.prototype.add_to_transaction = function(trans_id, query, params, callback, err_callback) new_query["query"] = query;
{ if (params) {
var new_query = new Object();; new_query["params"] = params;
new_query['trans_id'] = trans_id; } else {
if(callback || !this.optimization_no_nested_callbacks) new_query["params"] = [];
new_query['query_id'] = get_unique_id();
else if(this.optimization_no_nested_callbacks)
new_query['query_id'] = "";
new_query['query'] = query;
if(params)
new_query['params'] = params;
else
new_query['params'] = [];
new_query['callback'] = callback;
new_query['err_callback'] = err_callback;
if(!transaction_queue[trans_id])
transaction_queue[trans_id] = [];
transaction_queue[trans_id].push(new_query);
} }
new_query["callback"] = callback;
new_query["err_callback"] = err_callback;
if (!transaction_queue[trans_id]) transaction_queue[trans_id] = [];
return transaction_queue[trans_id].push(new_query);
};
SQLitePluginTransaction.prototype.executeSql = function(sql, values, success, error) { SQLitePluginTransaction.prototype.executeSql = function(sql, values, success, error) {
console.log("SQLitePluginTransaction.prototype.executeSql");
var errorcb, successcb, txself; var errorcb, successcb, txself;
console.log("SQLitePluginTransaction.prototype.executeSql");
errorcb = void 0;
successcb = void 0;
txself = void 0;
txself = this; txself = this;
successcb = null; successcb = null;
if (success) if (success) {
{ console.log("success not null:" + sql);
console.log("success not null:"+sql); successcb = function(execres) {
successcb = function(execres)
{
console.log("executeSql callback:"+JSON.stringify(execres));
var res, saveres; var res, saveres;
console.log("executeSql callback:" + JSON.stringify(execres));
res = void 0;
saveres = void 0;
saveres = execres; saveres = execres;
res = { res = {
rows: { rows: {
@ -202,10 +166,9 @@
}; };
return success(txself, res); return success(txself, res);
}; };
} else {
console.log("success NULL:" + sql);
} }
else
console.log("success NULL:"+sql);
errorcb = null; errorcb = null;
if (error) { if (error) {
errorcb = function(res) { errorcb = function(res) {
@ -213,28 +176,29 @@
}; };
} }
this.add_to_transaction(this.trans_id, sql, values, successcb, errorcb); this.add_to_transaction(this.trans_id, sql, values, successcb, errorcb);
console.log("executeSql - add_to_transaction"+sql); return console.log("executeSql - add_to_transaction" + sql);
}; };
SQLitePluginTransaction.prototype.complete = function(success, error) { SQLitePluginTransaction.prototype.complete = function(success, error) {
console.log("SQLitePluginTransaction.prototype.complete");
var begin_opts, commit_opts, errorcb, executes, opts, successcb, txself; var begin_opts, commit_opts, errorcb, executes, opts, successcb, txself;
console.log("SQLitePluginTransaction.prototype.complete");
begin_opts = void 0;
commit_opts = void 0;
errorcb = void 0;
executes = void 0;
opts = void 0;
successcb = void 0;
txself = void 0;
if (this.__completed) throw new Error("Transaction already run"); if (this.__completed) throw new Error("Transaction already run");
if (this.__submitted) throw new Error("Transaction already submitted"); if (this.__submitted) throw new Error("Transaction already submitted");
this.__submitted = true; this.__submitted = true;
txself = this; txself = this;
successcb = function() successcb = function() {
{ if (transaction_queue[txself.trans_id].length > 0 && !txself.optimization_no_nested_callbacks) {
if(transaction_queue[txself.trans_id].length > 0 && !txself.optimization_no_nested_callbacks)
{
txself.__submitted = false; txself.__submitted = false;
txself.complete(success, error); return txself.complete(success, error);
} } else {
else
{
this.__completed = true; this.__completed = true;
if(success) if (success) return success(txself);
return success(txself);
} }
}; };
errorcb = function(res) {}; errorcb = function(res) {};
@ -243,22 +207,14 @@
return error(txself, res); return error(txself, res);
}; };
} }
transaction_callback_queue[this.trans_id]['success'] = successcb; transaction_callback_queue[this.trans_id]["success"] = successcb;
transaction_callback_queue[this.trans_id]['error'] = errorcb; transaction_callback_queue[this.trans_id]["error"] = errorcb;
PhoneGap.exec(null, null, "SQLitePlugin", "executeSqlBatch", transaction_queue[this.trans_id]); return PhoneGap.exec(null, null, "SQLitePlugin", "executeSqlBatch", transaction_queue[this.trans_id]);
}; };
return SQLitePluginTransaction;
//})();
root.SQLitePluginTransaction = SQLitePluginTransaction; root.SQLitePluginTransaction = SQLitePluginTransaction;
return root.sqlitePlugin = {
root.sqlitePlugin = {
openDatabase: function(dbPath, version, displayName, estimatedSize, creationCallback, errorCallback) { openDatabase: function(dbPath, version, displayName, estimatedSize, creationCallback, errorCallback) {
if (version == null) version = null;
if (displayName == null) displayName = null;
if (estimatedSize == null) estimatedSize = 0;
if (creationCallback == null) creationCallback = null;
if (errorCallback == null) errorCallback = null;
return new SQLitePlugin(dbPath, creationCallback, errorCallback); return new SQLitePlugin(dbPath, creationCallback, errorCallback);
} }
}; };
}).call(this); })();