]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojox/collections/_base.js
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojox / collections / _base.js
diff --git a/static/dojo-release-1.1.1/dojox/collections/_base.js b/static/dojo-release-1.1.1/dojox/collections/_base.js
new file mode 100644 (file)
index 0000000..28862d5
--- /dev/null
@@ -0,0 +1,100 @@
+if(!dojo._hasResource["dojox.collections._base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.collections._base"] = true;
+dojo.provide("dojox.collections._base");
+
+dojox.collections.DictionaryEntry=function(/* string */k, /* object */v){
+       //      summary
+       //      return an object of type dojox.collections.DictionaryEntry
+       this.key=k;
+       this.value=v;
+       this.valueOf=function(){ 
+               return this.value;      //      object
+       };
+       this.toString=function(){ 
+               return String(this.value);      //      string 
+       };
+}
+
+/*     Iterators
+ *     The collections.Iterators (Iterator and DictionaryIterator) are built to
+ *     work with the Collections included in this module.  However, they *can*
+ *     be used with arrays and objects, respectively, should one choose to do so.
+ */
+dojox.collections.Iterator=function(/* array */arr){
+       //      summary
+       //      return an object of type dojox.collections.Iterator
+       var a=arr;
+       var position=0;
+       this.element=a[position]||null;
+       this.atEnd=function(){
+               //      summary
+               //      Test to see if the internal cursor has reached the end of the internal collection.
+               return (position>=a.length);    //      bool
+       };
+       this.get=function(){
+               //      summary
+               //      Get the next member in the collection.
+               if(this.atEnd()){
+                       return null;            //      object
+               }
+               this.element=a[position++];
+               return this.element;    //      object
+       };
+       this.map=function(/* function */fn, /* object? */scope){
+               //      summary
+               //      Functional iteration with optional scope.
+               return dojo.map(a, fn, scope);
+       };
+       this.reset=function(){
+               //      summary
+               //      reset the internal cursor.
+               position=0;
+               this.element=a[position];
+       };
+}
+
+/*     Notes:
+ *     The DictionaryIterator no longer supports a key and value property;
+ *     the reality is that you can use this to iterate over a JS object
+ *     being used as a hashtable.
+ */
+dojox.collections.DictionaryIterator=function(/* object */obj){
+       //      summary
+       //      return an object of type dojox.collections.DictionaryIterator
+       var a=[];       //      Create an indexing array
+       var testObject={};
+       for(var p in obj){
+               if(!testObject[p]){
+                       a.push(obj[p]); //      fill it up
+               }
+       }
+       var position=0;
+       this.element=a[position]||null;
+       this.atEnd=function(){
+               //      summary
+               //      Test to see if the internal cursor has reached the end of the internal collection.
+               return (position>=a.length);    //      bool
+       };
+       this.get=function(){
+               //      summary
+               //      Get the next member in the collection.
+               if(this.atEnd()){
+                       return null;            //      object
+               }
+               this.element=a[position++];
+               return this.element;    //      object
+       };
+       this.map=function(/* function */fn, /* object? */scope){
+               //      summary
+               //      Functional iteration with optional scope.
+               return dojo.map(a, fn, scope);
+       };
+       this.reset=function() { 
+               //      summary
+               //      reset the internal cursor.
+               position=0; 
+               this.element=a[position];
+       };
+};
+
+}