-function ManifoldQuery(action, subject, timestamp, filters, params, fields, unique, query_uuid, aq, sq) {
+function ManifoldQuery(action, object, timestamp, filters, params, fields, unique, query_uuid, aq, sq) {
// get, update, delete, create
var action;
// slice, user, network...
- var subject;
+ var object;
// timestamp, now, latest(cache) : date of the results queried
var timestamp;
// key(field),op(=<>),value
/*-------------------------------------------------------------
Query properties are SQL like :
---------------------------------------------------------------
-SELECT fields FROM subject WHERE filter;
-UPDATE subject SET field=value WHERE filter; / returns SELECT
-DELETE FROM subject WHERE filter
-INSERT INTO subject VALUES(field=value)
+SELECT fields FROM object WHERE filter;
+UPDATE object SET field=value WHERE filter; / returns SELECT
+DELETE FROM object WHERE filter
+INSERT INTO object VALUES(field=value)
-------------------------------------------------------------*/
this.__repr = function () {
- res = "ManyfoldQuery ";
+ res = "ManifoldQuery ";
res += " id=" + this.query_uuid;
res += " a=" + this.action;
- res += " s=" + this.subject;
+ res += " o=" + this.object;
res += " ts=" + this.timestamp;
res += " flts=" + this.filters;
res += " flds=" + this.fields;
}
// we send queries as a json string now
// this.as_POST = function() {
-// return {'action': this.action, 'subject': this.subject, 'timestamp': this.timestamp,
+// return {'action': this.action, 'object': this.object, 'timestamp': this.timestamp,
// 'filters': this.filters, 'params': this.params, 'fields': this.fields};
// }
this.analyze_subqueries = function() {
var q = new ManifoldQuery();
q.query_uuid = this.query_uuid;
q.action = this.action;
- q.subject = this.subject;
+ q.object = this.object;
q.timestamp = this.timestamp;
/* Filters */
var v = filter[2];
var pos = k.indexOf('.');
if (pos != -1) {
- var subject = k.substr(0, pos);
+ var object = k.substr(0, pos);
var field = k.substr(pos+1);
- if (!q.subqueries[subject]) {
- q.subqueries[subject] = new ManifoldQuery();
- q.subqueries[subject].action = this.action;
- q.subqueries[subject].subject = this.subject;
- q.subqueries[subject].timestamp = this.timestamp;
+ if (!q.subqueries[object]) {
+ q.subqueries[object] = new ManifoldQuery();
+ q.subqueries[object].action = q.action;
+ q.subqueries[object].object = object;
+ q.subqueries[object].timestamp = q.timestamp;
}
- q.subqueries[subject].filters.push(Array(field, op, v));
+ q.subqueries[object].filters.push(Array(field, op, v));
} else {
- q.filters.push(this.filter);
+ q.filters.push(filter);
}
});
jQuery.each(this.params, function(param, value) {
var pos = param.indexOf('.');
if (pos != -1) {
- var subject = param.substr(0, pos);
+ var object = param.substr(0, pos);
var field = param.substr(pos+1);
- if (!q.subqueries[subject]) {
- q.subqueries[subject] = new ManifoldQuery();
- q.subqueries[subject].action = this.action;
- q.subqueries[subject].subject = this.subject;
- q.subqueries[subject].timestamp = this.timestamp;
+ if (!q.subqueries[object]) {
+ q.subqueries[object] = new ManifoldQuery();
+ q.subqueries[object].action = q.action;
+ q.subqueries[object].object = object;
+ q.subqueries[object].timestamp = q.timestamp;
}
- q.subqueries[subject].params[field] = value;
+ q.subqueries[object].params[field] = value;
} else {
q.params[field] = value;
}
jQuery.each(this.fields, function(i, v) {
var pos = v.indexOf('.');
if (pos != -1) {
- var subject = v.substr(0, pos);
+ var object = v.substr(0, pos);
var field = v.substr(pos+1);
- if (!q.subqueries[subject]) {
- q.subqueries[subject] = new ManifoldQuery();
- q.subqueries[subject].action = this.action;
- q.subqueries[subject].subject = this.subject;
- q.subqueries[subject].timestamp = this.timestamp;
+ if (!q.subqueries[object]) {
+ q.subqueries[object] = new ManifoldQuery();
+ q.subqueries[object].action = q.action;
+ q.subqueries[object].object = object;
+ q.subqueries[object].timestamp = q.timestamp;
}
- q.subqueries[subject].fields.push(field);
+ q.subqueries[object].fields.push(field);
} else {
q.fields.push(v);
}
else
this.action = action;
- if (typeof subject == "undefined")
- this.subject = null;
+ if (typeof object == "undefined")
+ this.object = null;
else
- this.subject = subject;
+ this.object = object;
if (typeof timestamp == "undefined")
this.timestamp = "now";
this.unique = unique;
this.query_uuid = query_uuid;
- if (typeof analyzed_query == "undefined")
+
+ if (typeof aq == "undefined")
this.analyzed_query = null;
else
this.analyzed_query = aq;
- if (typeof subqueries == "undefined")
+ if (typeof sq == "undefined")
this.subqueries = {};
else
this.subqueries = sq;