summaryrefslogtreecommitdiff
path: root/includes/js/dojox/collections/Set.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojox/collections/Set.js')
-rw-r--r--includes/js/dojox/collections/Set.js89
1 files changed, 89 insertions, 0 deletions
diff --git a/includes/js/dojox/collections/Set.js b/includes/js/dojox/collections/Set.js
new file mode 100644
index 0000000..6796c1d
--- /dev/null
+++ b/includes/js/dojox/collections/Set.js
@@ -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
+ };
+ })();
+})();
+
+}