Subversion Repositories Applications.papyrus

Rev

Blame | Last modification | View Log | RSS feed

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
                };
        })();
})();

}