1 dojo.provide("calitha.collections.AbstractSet"); 2 dojo.require("calitha.collections.ISet"); 3 dojo.require("calitha.collections.AbstractCollection"); 4 dojo.require("calitha.collections.util"); 5 6 dojo.declare("calitha.collections.AbstractSet", [calitha.collections.ISet, calitha.collections.AbstractCollection], 7 /** @lends calitha.collections.AbstractSet# */ 8 { 9 /** 10 * @constructs 11 * @extends calitha.collections.ISet 12 * @extends calitha.collections.AbstractCollection 13 */ 14 constructor: function() 15 { 16 } 17 , 18 equals: function(/**Object*/ o) 19 { 20 if (o === this) 21 { 22 return true; 23 } 24 25 if (!(calitha.collections.util.isObjectInstanceOf(o, calitha.collections.ISet))) 26 { 27 return false; 28 } 29 //noinspection UnnecessaryLocalVariableJS 30 var set = o; 31 if (set.size() != this.size()) 32 { 33 return false; 34 } 35 return this.containsAll(set); 36 } 37 , 38 hashCode: function() 39 { 40 var result = 0; 41 var it = this.iterator(); 42 while (it.hasNext()) 43 { 44 var obj = it.next(); 45 result += calitha.collections.util.hashCode(obj); 46 } 47 return result; 48 } 49 50 }); 51