Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["dojox.collections.Dictionary"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojox.collections.Dictionary"] = true;dojo.provide("dojox.collections.Dictionary");dojo.require("dojox.collections._base");dojox.collections.Dictionary=function(/* dojox.collections.Dictionary? */dictionary){// summary// Returns an object of type dojox.collections.Dictionaryvar items={};this.count=0;// comparator for property addition and access.var testObject={};this.add=function(/* string */k, /* object */v){// summary// Add a new item to the Dictionary.var b=(k in items);items[k]=new dojox.collections.DictionaryEntry(k,v);if(!b){this.count++;}};this.clear=function(){// summary// Clears the internal dictionary.items={};this.count=0;};this.clone=function(){// summary// Returns a new instance of dojox.collections.Dictionary; note the the dictionary is a clone but items might not be.return new dojox.collections.Dictionary(this); // dojox.collections.Dictionary};this.contains=this.containsKey=function(/* string */k){// summary// Check to see if the dictionary has an entry at key "k".if(testObject[k]){return false; // bool}return (items[k]!=null); // bool};this.containsValue=function(/* object */v){// summary// Check to see if the dictionary has an entry with value "v".var e=this.getIterator();while(e.get()){if(e.element.value==v){return true; // bool}}return false; // bool};this.entry=function(/* string */k){// summary// Accessor method; similar to dojox.collections.Dictionary.item but returns the actual Entry object.return items[k]; // dojox.collections.DictionaryEntry};this.forEach=function(/* function */ fn, /* object? */ scope){// summary// functional iterator, following the mozilla spec.var a=[]; // Create an indexing arrayfor(var p in items) {if(!testObject[p]){a.push(items[p]); // fill it up}}dojo.forEach(a, fn, scope);};this.getKeyList=function(){// summary// Returns an array of the keys in the dictionary.return (this.getIterator()).map(function(entry){return entry.key;}); // array};this.getValueList=function(){// summary// Returns an array of the values in the dictionary.return (this.getIterator()).map(function(entry){return entry.value;}); // array};this.item=function(/* string */k){// summary// Accessor method.if(k in items){return items[k].valueOf(); // object}return undefined; // object};this.getIterator=function(){// summary// Gets a dojox.collections.DictionaryIterator for iteration purposes.return new dojox.collections.DictionaryIterator(items); // dojox.collections.DictionaryIterator};this.remove=function(/* string */k){// summary// Removes the item at k from the internal collection.if(k in items && !testObject[k]){delete items[k];this.count--;return true; // bool}return false; // bool};if (dictionary){var e=dictionary.getIterator();while(e.get()) {this.add(e.element.key, e.element.value);}}};}