123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /*
- Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
- Available via Academic Free License >= 2.1 OR the modified BSD license.
- see: http://dojotoolkit.org/license for details
- */
- 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
- };
- })();
- })();
- }
|