New file |
0,0 → 1,89 |
if(!dojo._hasResource["dojox.collections.Set"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. |
dojo._hasResource["dojox.collections.Set"] = true; |
dojo.provide("dojox.collections.Set"); |
dojo.require("dojox.collections.ArrayList"); |
|
(function(){ |
var dxc=dojox.collections; |
dxc.Set=new (function(){ |
function conv(arr){ |
if(arr.constructor==Array){ |
return new dojox.collections.ArrayList(arr); // dojox.collections.ArrayList |
} |
return arr; // dojox.collections.ArrayList |
} |
this.union = function(/* array */setA, /* array */setB){ |
// summary |
// Return the union of the two passed sets. |
setA=conv(setA); |
setB=conv(setB); |
var result = new dojox.collections.ArrayList(setA.toArray()); |
var e = setB.getIterator(); |
while(!e.atEnd()){ |
var item=e.get(); |
if(!result.contains(item)){ |
result.add(item); |
} |
} |
return result; // dojox.collections.ArrayList |
}; |
this.intersection = function(/* array */setA, /* array */setB){ |
// summary |
// Return the intersection of the two passed sets. |
setA=conv(setA); |
setB=conv(setB); |
var result = new dojox.collections.ArrayList(); |
var e = setB.getIterator(); |
while(!e.atEnd()){ |
var item=e.get(); |
if(setA.contains(item)){ |
result.add(item); |
} |
} |
return result; // dojox.collections.ArrayList |
}; |
this.difference = function(/* array */setA, /* array */setB){ |
// summary |
// Returns everything in setA that is not in setB. |
setA=conv(setA); |
setB=conv(setB); |
var result = new dojox.collections.ArrayList(); |
var e=setA.getIterator(); |
while(!e.atEnd()){ |
var item=e.get(); |
if(!setB.contains(item)){ |
result.add(item); |
} |
} |
return result; // dojox.collections.ArrayList |
}; |
this.isSubSet = function(/* array */setA, /* array */setB) { |
// summary |
// Returns if set B is a subset of set A. |
setA=conv(setA); |
setB=conv(setB); |
var e = setA.getIterator(); |
while(!e.atEnd()){ |
if(!setB.contains(e.get())){ |
return false; // boolean |
} |
} |
return true; // boolean |
}; |
this.isSuperSet = function(/* array */setA, /* array */setB){ |
// summary |
// Returns if set B is a superset of set A. |
setA=conv(setA); |
setB=conv(setB); |
var e = setB.getIterator(); |
while(!e.atEnd()){ |
if(!setA.contains(e.get())){ |
return false; // boolean |
} |
} |
return true; // boolean |
}; |
})(); |
})(); |
|
} |