var s=scope||dj_global; 
var s=scope||dojo.global; 
dojox.collections.Dictionary=function(/* dojox.collections.Dictionary? */dictionary){	//	summary	//	Returns an object of type dojox.collections.Dictionary	var 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 array		for(var p in items) {			if(!testObject[p]){				a.push(items[p]);	//	fill it up			}		}		var s=scope||dj_global;		if(Array.forEach){			Array.forEach(a, fn, s);		}else{			for(var i=0; i<a.length; i++){				fn.call(s, a[i], i, a);			}		}	};	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);		}	}};
5168	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/5168/c270a8925d5a9958195b302ecdff1966132b1409/Dictionary.js/clean/collections/Dictionary.js