summaryrefslogtreecommitdiff
path: root/lib/dojo/store/Memory.js.uncompressed.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dojo/store/Memory.js.uncompressed.js')
-rw-r--r--lib/dojo/store/Memory.js.uncompressed.js161
1 files changed, 0 insertions, 161 deletions
diff --git a/lib/dojo/store/Memory.js.uncompressed.js b/lib/dojo/store/Memory.js.uncompressed.js
deleted file mode 100644
index ecea859b9..000000000
--- a/lib/dojo/store/Memory.js.uncompressed.js
+++ /dev/null
@@ -1,161 +0,0 @@
-define("dojo/store/Memory", ["../_base/declare", "./util/QueryResults", "./util/SimpleQueryEngine"], function(declare, QueryResults, SimpleQueryEngine) {
- // module:
- // dojo/store/Memory
- // summary:
- // The module defines an in-memory object store.
-
-
-return declare("dojo.store.Memory", null, {
- // summary:
- // This is a basic in-memory object store. It implements dojo.store.api.Store.
- constructor: function(/*dojo.store.Memory*/ options){
- // summary:
- // Creates a memory object store.
- // options:
- // This provides any configuration information that will be mixed into the store.
- // This should generally include the data property to provide the starting set of data.
- for(var i in options){
- this[i] = options[i];
- }
- this.setData(this.data || []);
- },
- // data: Array
- // The array of all the objects in the memory store
- data:null,
-
- // idProperty: String
- // Indicates the property to use as the identity property. The values of this
- // property should be unique.
- idProperty: "id",
-
- // index: Object
- // An index of data indices into the data array by id
- index:null,
-
- // queryEngine: Function
- // Defines the query engine to use for querying the data store
- queryEngine: SimpleQueryEngine,
- get: function(id){
- // summary:
- // Retrieves an object by its identity
- // id: Number
- // The identity to use to lookup the object
- // returns: Object
- // The object in the store that matches the given id.
- return this.data[this.index[id]];
- },
- getIdentity: function(object){
- // summary:
- // Returns an object's identity
- // object: Object
- // The object to get the identity from
- // returns: Number
- return object[this.idProperty];
- },
- put: function(object, options){
- // summary:
- // Stores an object
- // object: Object
- // The object to store.
- // options: dojo.store.api.Store.PutDirectives??
- // Additional metadata for storing the data. Includes an "id"
- // property if a specific id is to be used.
- // returns: Number
- var data = this.data,
- index = this.index,
- idProperty = this.idProperty;
- var id = (options && "id" in options) ? options.id : idProperty in object ? object[idProperty] : Math.random();
- if(id in index){
- // object exists
- if(options && options.overwrite === false){
- throw new Error("Object already exists");
- }
- // replace the entry in data
- data[index[id]] = object;
- }else{
- // add the new object
- index[id] = data.push(object) - 1;
- }
- return id;
- },
- add: function(object, options){
- // summary:
- // Creates an object, throws an error if the object already exists
- // object: Object
- // The object to store.
- // options: dojo.store.api.Store.PutDirectives??
- // Additional metadata for storing the data. Includes an "id"
- // property if a specific id is to be used.
- // returns: Number
- (options = options || {}).overwrite = false;
- // call put with overwrite being false
- return this.put(object, options);
- },
- remove: function(id){
- // summary:
- // Deletes an object by its identity
- // id: Number
- // The identity to use to delete the object
- // returns: Boolean
- // Returns true if an object was removed, falsy (undefined) if no object matched the id
- var index = this.index;
- var data = this.data;
- if(id in index){
- data.splice(index[id], 1);
- // now we have to reindex
- this.setData(data);
- return true;
- }
- },
- query: function(query, options){
- // summary:
- // Queries the store for objects.
- // query: Object
- // The query to use for retrieving objects from the store.
- // options: dojo.store.api.Store.QueryOptions?
- // The optional arguments to apply to the resultset.
- // returns: dojo.store.api.Store.QueryResults
- // The results of the query, extended with iterative methods.
- //
- // example:
- // Given the following store:
- //
- // | var store = new dojo.store.Memory({
- // | data: [
- // | {id: 1, name: "one", prime: false },
- // | {id: 2, name: "two", even: true, prime: true},
- // | {id: 3, name: "three", prime: true},
- // | {id: 4, name: "four", even: true, prime: false},
- // | {id: 5, name: "five", prime: true}
- // | ]
- // | });
- //
- // ...find all items where "prime" is true:
- //
- // | var results = store.query({ prime: true });
- //
- // ...or find all items where "even" is true:
- //
- // | var results = store.query({ even: true });
- return QueryResults(this.queryEngine(query, options)(this.data));
- },
- setData: function(data){
- // summary:
- // Sets the given data as the source for this store, and indexes it
- // data: Object[]
- // An array of objects to use as the source of data.
- if(data.items){
- // just for convenience with the data format IFRS expects
- this.idProperty = data.identifier;
- data = this.data = data.items;
- }else{
- this.data = data;
- }
- this.index = {};
- for(var i = 0, l = data.length; i < l; i++){
- this.index[data[i][this.idProperty]] = i;
- }
- }
-});
-
-});