[gnome-documents/wip/provider-v2: 3/5] query: don't depend on Global
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-documents/wip/provider-v2: 3/5] query: don't depend on Global
- Date: Sat, 8 Dec 2012 04:17:37 +0000 (UTC)
commit a017fe98a4c0d6e614d6368c3dad7e63d5292430
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Fri Dec 7 15:08:13 2012 -0500
query: don't depend on Global
src/global.js | 3 ++-
src/query.js | 55 +++++++++++++++++++++++++------------------------------
2 files changed, 27 insertions(+), 31 deletions(-)
---
diff --git a/src/global.js b/src/global.js
index 58810a2..f348de4 100644
--- a/src/global.js
+++ b/src/global.js
@@ -55,6 +55,7 @@ function initSearch() {
searchController = new Searchbar.SearchController();
offsetController = new OffsetController.OffsetController();
- queryBuilder = new Query.QueryBuilder();
connectionQueue = new TrackerController.TrackerConnectionQueue();
+
+ queryBuilder = new Query.QueryBuilder(this);
};
diff --git a/src/query.js b/src/query.js
index e8a68b0..771f367 100644
--- a/src/query.js
+++ b/src/query.js
@@ -19,8 +19,6 @@
*
*/
-const Global = imports.global;
-
const GdPrivate = imports.gi.GdPrivate;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
@@ -48,27 +46,24 @@ const QueryFlags = {
const LOCAL_COLLECTIONS_IDENTIFIER = 'gd:collection:local:';
-const Query = new Lang.Class({
- Name: 'Query',
-
- _init: function(sparql) {
- this.sparql = sparql;
- this.activeSource = Global.sourceManager.getActiveItem();
- }
-});
-
const QueryBuilder = new Lang.Class({
Name: 'QueryBuilder',
- _init: function() {
+ _init: function(context) {
+ this._context = context;
+ },
+
+ _createQuery: function(sparql) {
+ return { sparql: sparql,
+ activeSource: this._context.sourceManager.getActiveItem() };
},
_buildFilterString: function(currentType) {
let filters = [];
- filters.push(Global.searchMatchManager.getFilter());
- filters.push(Global.sourceManager.getFilter());
- filters.push(Global.searchCategoryManager.getFilter());
+ filters.push(this._context.searchMatchManager.getFilter());
+ filters.push(this._context.sourceManager.getFilter());
+ filters.push(this._context.searchCategoryManager.getFilter());
if (currentType) {
filters.push(currentType.getFilter());
@@ -91,9 +86,9 @@ const QueryBuilder = new Lang.Class({
let searchTypes = [];
if (flags & QueryFlags.UNFILTERED)
- searchTypes = Global.searchTypeManager.getAllTypes();
+ searchTypes = this._context.searchTypeManager.getAllTypes();
else
- searchTypes = Global.searchTypeManager.getCurrentTypes();
+ searchTypes = this._context.searchTypeManager.getCurrentTypes();
// build an array of WHERE clauses; each clause maps to one
// type of resource we're looking for.
@@ -103,8 +98,8 @@ const QueryBuilder = new Lang.Class({
if ((flags & QueryFlags.UNFILTERED) == 0) {
if (global)
- part += Global.searchCategoryManager.getWhere() +
- Global.collectionManager.getWhere();
+ part += this._context.searchCategoryManager.getWhere() +
+ this._context.collectionManager.getWhere();
part += this._buildFilterString(currentType);
}
@@ -128,8 +123,8 @@ const QueryBuilder = new Lang.Class({
if (global) {
tailSparql +=
'ORDER BY DESC (?mtime)' +
- ('LIMIT %d OFFSET %d').format(Global.offsetController.getOffsetStep(),
- Global.offsetController.getOffset());
+ ('LIMIT %d OFFSET %d').format(this._context.offsetController.getOffsetStep(),
+ this._context.offsetController.getOffset());
}
let sparql =
@@ -154,18 +149,18 @@ const QueryBuilder = new Lang.Class({
let sparql = this._buildQueryInternal(false, flags);
sparql = sparql.replace('?urn', '<' + resource + '>', 'g');
- return new Query(sparql);
+ return this._createQuery(sparql);
},
buildGlobalQuery: function() {
- return new Query(this._buildQueryInternal(true, QueryFlags.NONE));
+ return this._createQuery(this._buildQueryInternal(true, QueryFlags.NONE));
},
buildCountQuery: function() {
let sparql = 'SELECT DISTINCT COUNT(?urn) ' +
this._buildWhere(true, QueryFlags.NONE);
- return new Query(sparql);
+ return this._createQuery(sparql);
},
// queries for all the items which are part of the given collection
@@ -178,7 +173,7 @@ const QueryBuilder = new Lang.Class({
'ORDER BY DESC (?mtime)' +
'LIMIT 4').replace('?collUrn', '<' + resource + '>');
- return new Query(sparql);
+ return this._createQuery(sparql);
},
// queries for all the collections the given item is part of
@@ -189,14 +184,14 @@ const QueryBuilder = new Lang.Class({
'WHERE { ?urn a nfo:DataContainer . ?docUrn nie:isPartOf ?urn }'
).replace('?docUrn', '<' + resource + '>');
- return new Query(sparql);
+ return this._createQuery(sparql);
},
// adds or removes the given item to the given collection
buildSetCollectionQuery: function(itemUrn, collectionUrn, setting) {
let sparql = ('%s { <%s> nie:isPartOf <%s> }'
).format((setting ? 'INSERT' : 'DELETE'), itemUrn, collectionUrn);
- return new Query(sparql);
+ return this._createQuery(sparql);
},
// bumps the mtime to current time for the given resource
@@ -205,7 +200,7 @@ const QueryBuilder = new Lang.Class({
let sparql = ('INSERT OR REPLACE { <%s> nie:contentLastModified \"%s\" }'
).format(resource, time);
- return new Query(sparql);
+ return this._createQuery(sparql);
},
buildCreateCollectionQuery: function(name) {
@@ -215,12 +210,12 @@ const QueryBuilder = new Lang.Class({
'nie:title \"' + name + '\" ; ' +
'nao:identifier \"' + LOCAL_COLLECTIONS_IDENTIFIER + name + '\" }');
- return new Query(sparql);
+ return this._createQuery(sparql);
},
buildDeleteResourceQuery: function(resource) {
let sparql = ('DELETE { <%s> a rdfs:Resource }').format(resource);
- return new Query(sparql);
+ return this._createQuery(sparql);
}
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]