/public/javascripts/dojo/dojox/data/S3Store.js

http://enginey.googlecode.com/ · JavaScript · 34 lines · 26 code · 3 blank · 5 comment · 1 complexity · 90ca3590eedec0101e349a54a7cccde8 MD5 · raw file

  1. dojo.provide("dojox.data.S3Store");
  2. dojo.require("dojox.rpc.ProxiedPath");
  3. dojo.require("dojox.data.JsonRestStore");
  4. // S3JsonRestStore is an extension of JsonRestStore to handle
  5. // Amazon's S3 service using JSON data
  6. dojo.declare("dojox.data.S3Store",
  7. dojox.data.JsonRestStore,
  8. {
  9. _processResults : function(results){
  10. // unfortunately, S3 returns query results in XML form
  11. var keyElements = results.getElementsByTagName("Key");
  12. var jsResults = [];
  13. var self = this;
  14. for(var i=0; i <keyElements.length;i++){
  15. var keyElement = keyElements[i];
  16. // manually create lazy loaded Deferred items for each item in the result array
  17. var val = {
  18. _loadObject: (function(key,val){
  19. return function(callback){
  20. // when a callback is added we will fetch it
  21. delete this._loadObject;
  22. self.service(key).addCallback(callback);
  23. };
  24. })(keyElement.firstChild.nodeValue,val)
  25. };
  26. jsResults.push(val);
  27. }
  28. return {totalCount:jsResults.length, items: jsResults};
  29. }
  30. }
  31. );