Rev 1318 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*Copyright (c) 2004-2006, The Dojo FoundationAll Rights Reserved.Licensed under the Academic Free License version 2.1 or above OR themodified BSD license. For more information on Dojo licensing, see:http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.collections.Set");dojo.require("dojo.collections.Collections");dojo.require("dojo.collections.ArrayList");dojo.collections.Set = new function () {this.union = function (setA, setB) {if (setA.constructor == Array) {var setA = new dojo.collections.ArrayList(setA);}if (setB.constructor == Array) {var setB = new dojo.collections.ArrayList(setB);}if (!setA.toArray || !setB.toArray) {dojo.raise("Set operations can only be performed on array-based collections.");}var result = new dojo.collections.ArrayList(setA.toArray());var e = setB.getIterator();while (!e.atEnd()) {var item = e.get();if (!result.contains(item)) {result.add(item);}}return result;};this.intersection = function (setA, setB) {if (setA.constructor == Array) {var setA = new dojo.collections.ArrayList(setA);}if (setB.constructor == Array) {var setB = new dojo.collections.ArrayList(setB);}if (!setA.toArray || !setB.toArray) {dojo.raise("Set operations can only be performed on array-based collections.");}var result = new dojo.collections.ArrayList();var e = setB.getIterator();while (!e.atEnd()) {var item = e.get();if (setA.contains(item)) {result.add(item);}}return result;};this.difference = function (setA, setB) {if (setA.constructor == Array) {var setA = new dojo.collections.ArrayList(setA);}if (setB.constructor == Array) {var setB = new dojo.collections.ArrayList(setB);}if (!setA.toArray || !setB.toArray) {dojo.raise("Set operations can only be performed on array-based collections.");}var result = new dojo.collections.ArrayList();var e = setA.getIterator();while (!e.atEnd()) {var item = e.get();if (!setB.contains(item)) {result.add(item);}}return result;};this.isSubSet = function (setA, setB) {if (setA.constructor == Array) {var setA = new dojo.collections.ArrayList(setA);}if (setB.constructor == Array) {var setB = new dojo.collections.ArrayList(setB);}if (!setA.toArray || !setB.toArray) {dojo.raise("Set operations can only be performed on array-based collections.");}var e = setA.getIterator();while (!e.atEnd()) {if (!setB.contains(e.get())) {return false;}}return true;};this.isSuperSet = function (setA, setB) {if (setA.constructor == Array) {var setA = new dojo.collections.ArrayList(setA);}if (setB.constructor == Array) {var setB = new dojo.collections.ArrayList(setB);}if (!setA.toArray || !setB.toArray) {dojo.raise("Set operations can only be performed on array-based collections.");}var e = setB.getIterator();while (!e.atEnd()) {if (!setA.contains(e.get())) {return false;}}return true;};}();