diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/db/index.js')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/db/index.js | 212 |
1 files changed, 0 insertions, 212 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/db/index.js b/contexts/data/lib/closure-library/closure/goog/db/index.js deleted file mode 100644 index c56092c..0000000 --- a/contexts/data/lib/closure-library/closure/goog/db/index.js +++ /dev/null @@ -1,212 +0,0 @@ -// Copyright 2011 The Closure Library Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS-IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @fileoverview Wrapper for an IndexedDB index. - * - */ - - -goog.provide('goog.db.Index'); - -goog.require('goog.async.Deferred'); -goog.require('goog.db.Error'); -goog.require('goog.debug'); - - - -/** - * Creates an IDBIndex wrapper object. Indexes are associated with object - * stores and provide methods for looking up objects based on their non-key - * properties. Should not be created directly, access through the object store - * it belongs to. - * @see goog.db.ObjectStore#getIndex - * - * @param {!IDBIndex} index Underlying IDBIndex object. - * @constructor - */ -goog.db.Index = function(index) { - /** - * Underlying IndexedDB index object. - * - * @type {!IDBIndex} - * @private - */ - this.index_ = index; -}; - - -/** - * @return {string} Name of the index. - */ -goog.db.Index.prototype.getName = function() { - return this.index_.name; -}; - - -/** - * @return {string} Key path of the index. - */ -goog.db.Index.prototype.getKeyPath = function() { - return this.index_.keyPath; -}; - - -/** - * @return {boolean} True if the index enforces that there is only one object - * for each unique value it indexes on. - */ -goog.db.Index.prototype.isUnique = function() { - return this.index_.unique; -}; - - -/** - * Helper function for get and getKey. - * - * @param {string} fn Function name to call on the index to get the request. - * @param {string} msg Message to give to the error. - * @param {!Object} value Value to look up in the index. - * @return {!goog.async.Deferred} The resulting deferred object. - * @private - */ -goog.db.Index.prototype.get_ = function(fn, msg, value) { - var d = new goog.async.Deferred(); - var request; - try { - request = this.index_[fn](value); - } catch (err) { - msg += ' with value ' + goog.debug.deepExpose(value); - d.errback(new goog.db.Error(err.code, msg)); - return d; - } - request.onsuccess = function(ev) { - d.callback(ev.target.result); - }; - request.onerror = function(ev) { - msg += ' with value ' + goog.debug.deepExpose(value); - d.errback(new goog.db.Error( - (/** @type {IDBRequest} */ (ev.target)).errorCode, - msg)); - }; - return d; -}; - - -/** - * Fetches a single object from the object store. Even if there are multiple - * objects that match the given value, this method will get only one of them. - * - * @param {!Object} value Value to look up in the index. - * @return {!goog.async.Deferred} The deferred object that matches the value. - */ -goog.db.Index.prototype.get = function(value) { - return this.get_('get', 'getting from index ' + this.getName(), value); -}; - - -/** - * Looks up a single object from the object store and gives back the key that - * it's listed under in the object store. Even if there are multiple objects - * that match the given value, this method will only get one of their keys. - * - * @param {!Object} value Value to look up in the index. - * @return {!goog.async.Deferred} The deferred key for the object that matches - * the value. - */ -goog.db.Index.prototype.getKey = function(value) { - return this.get_('getKey', 'getting key from index ' + this.getName(), value); -}; - - -/** - * Helper function for getAll and getAllKeys. - * - * @param {string} fn Function name to call on the index to get the request. - * @param {string} msg Message to give to the error. - * @param {!Object=} opt_value Value to look up in the index. - * @return {!goog.async.Deferred} The resulting deferred array of objects. - * @private - */ -goog.db.Index.prototype.getAll_ = function(fn, msg, opt_value) { - // This is the most common use of IDBKeyRange. If more specific uses of - // cursors are needed then a full wrapper should be created. - var IDBKeyRange = goog.global.IDBKeyRange || goog.global.webkitIDBKeyRange; - var d = new goog.async.Deferred(); - var request; - try { - if (opt_value) { - request = this.index_[fn](IDBKeyRange.bound(opt_value, opt_value)); - } else { - request = this.index_[fn](); - } - } catch (err) { - if (opt_value) { - msg += ' for value ' + goog.debug.deepExpose(opt_value); - } - d.errback(new goog.db.Error(err.code, msg)); - return d; - } - var result = []; - request.onsuccess = function(ev) { - var cursor = ev.target.result; - if (cursor) { - result.push(cursor.value); - cursor['continue'](); - } else { - d.callback(result); - } - }; - request.onerror = function(ev) { - if (opt_value) { - msg += ' for value ' + goog.debug.deepExpose(opt_value); - } - d.errback(new goog.db.Error( - (/** @type {IDBRequest} */ (ev.target)).errorCode, - msg)); - }; - return d; -}; - - -/** - * Gets all indexed objects. If the value is provided, gets all indexed objects - * that match the value instead. - * - * @param {!Object=} opt_value Value to look up in the index. - * @return {!goog.async.Deferred} A deferred array of objects that match the - * value. - */ -goog.db.Index.prototype.getAll = function(opt_value) { - return this.getAll_( - 'openCursor', - 'getting all from index ' + this.getName(), - opt_value); -}; - - -/** - * Gets the keys to look up all the indexed objects. If the value is provided, - * gets all keys for objects that match the value instead. - * - * @param {!Object=} opt_value Value to look up in the index. - * @return {!goog.async.Deferred} A deferred array of keys for objects that - * match the value. - */ -goog.db.Index.prototype.getAllKeys = function(opt_value) { - return this.getAll_( - 'openKeyCursor', - 'getting all keys from index ' + this.getName(), - opt_value); -}; |