a:8:{s:9:"#provides";s:26:"dojo.data.util.simpleFetch";s:9:"#resource";s:24:"data/util/simpleFetch.js";s:9:"#requires";a:1:{i:0;a:2:{i:0;s:6:"common";i:1;s:21:"dojo.data.util.sorter";}}s:32:"dojo.data.util.simpleFetch.fetch";a:6:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:7:"request";a:2:{s:8:"optional";b:1;s:4:"type";s:6:"Object";}}s:6:"source";s:1616:" request = request || {}; if(!request.store){ request.store = this; } var self = this; var _errorHandler = function(errorData, requestObject){ if(requestObject.onError){ var scope = requestObject.scope || dojo.global; requestObject.onError.call(scope, errorData, requestObject); } }; var _fetchHandler = function(items, requestObject){ var oldAbortFunction = requestObject.abort || null; var aborted = false; var startIndex = requestObject.start?requestObject.start:0; var endIndex = (requestObject.count && (requestObject.count !== Infinity))?(startIndex + requestObject.count):items.length; requestObject.abort = function(){ aborted = true; if(oldAbortFunction){ oldAbortFunction.call(requestObject); } }; var scope = requestObject.scope || dojo.global; if(!requestObject.store){ requestObject.store = self; } if(requestObject.onBegin){ requestObject.onBegin.call(scope, items.length, requestObject); } if(requestObject.sort){ items.sort(dojo.data.util.sorter.createSortFunction(requestObject.sort, self)); } if(requestObject.onItem){ for(var i = startIndex; (i < items.length) && (i < endIndex); ++i){ var item = items[i]; if(!aborted){ requestObject.onItem.call(scope, item, requestObject); } } } if(requestObject.onComplete && !aborted){ var subset = null; if (!requestObject.onItem) { subset = items.slice(startIndex, endIndex); } requestObject.onComplete.call(scope, subset, requestObject); } }; this._fetchItems(request, _fetchHandler, _errorHandler); return request; // Object";s:7:"summary";s:1788:"The simpleFetch mixin is designed to serve as a set of function(s) that can be mixed into other datastore implementations to accelerate their development. The simpleFetch mixin should work well for any datastore that can respond to a _fetchItems() call by returning an array of all the found items that matched the query. The simpleFetch mixin is not designed to work for datastores that respond to a fetch() call by incrementally loading items, or sequentially loading partial batches of the result set. For datastores that mixin simpleFetch, simpleFetch implements a fetch method that automatically handles eight of the fetch() arguments -- onBegin, onItem, onComplete, onError, start, count, sort and scope The class mixing in simpleFetch should not implement fetch(), but should instead implement a _fetchItems() method. The _fetchItems() method takes three arguments, the keywordArgs object that was passed to fetch(), a callback function to be called when the result array is available, and an error callback to be called if something goes wrong. The _fetchItems() method should ignore any keywordArgs parameters for start, count, onBegin, onItem, onComplete, onError, sort, and scope. The _fetchItems() method needs to correctly handle any other keywordArgs parameters, including the query parameter and any optional parameters (such as includeChildren). The _fetchItems() method should create an array of result items and pass it to the fetchHandler along with the original request object -- or, the _fetchItems() method may, if it wants to, create an new request object with other specifics about the request that are specific to the datastore and pass that as the request object to the handler. For more information on this specific function, see dojo.data.api.Read.fetch()";s:7:"returns";s:6:"Object";s:6:"chains";a:1:{s:4:"call";a:4:{i:0;s:21:"requestObject.onError";i:1;s:21:"requestObject.onBegin";i:2;s:20:"requestObject.onItem";i:3;s:24:"requestObject.onComplete";}}}s:26:"dojo.data.util.simpleFetch";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:14:"dojo.data.util";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:9:"dojo.data";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:4:"dojo";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}}