Subversion Repositories Applications.papyrus

Rev

Blame | Last modification | View Log | RSS feed

if(!dojo._hasResource["dojox.collections.Stack"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.collections.Stack"] = true;
dojo.provide("dojox.collections.Stack");
dojo.require("dojox.collections._base");

dojox.collections.Stack=function(/* array? */arr){
        //      summary
        //      returns an object of type dojox.collections.Stack
        var q=[];
        if (arr) q=q.concat(arr);
        this.count=q.length;
        this.clear=function(){
                //      summary
                //      Clear the internal array and reset the count
                q=[];
                this.count=q.length;
        };
        this.clone=function(){
                //      summary
                //      Create and return a clone of this Stack
                return new dojox.collections.Stack(q);
        };
        this.contains=function(/* object */o){
                //      summary
                //      check to see if the stack contains object o
                for (var i=0; i<q.length; i++){
                        if (q[i] == o){
                                return true;    //      bool
                        }
                }
                return false;   //      bool
        };
        this.copyTo=function(/* array */ arr, /* int */ i){
                //      summary
                //      copy the stack into array arr at index i
                arr.splice(i,0,q);
        };
        this.forEach=function(/* function */ fn, /* object? */ scope){
                //      summary
                //      functional iterator, following the mozilla spec.
                dojo.forEach(q, fn, scope);
        };
        this.getIterator=function(){
                //      summary
                //      get an iterator for this collection
                return new dojox.collections.Iterator(q);       //      dojox.collections.Iterator
        };
        this.peek=function(){
                //      summary
                //      Return the next item without altering the stack itself.
                return q[(q.length-1)]; //      object
        };
        this.pop=function(){
                //      summary
                //      pop and return the next item on the stack
                var r=q.pop();
                this.count=q.length;
                return r;       //      object
        };
        this.push=function(/* object */ o){
                //      summary
                //      Push object o onto the stack
                this.count=q.push(o);
        };
        this.toArray=function(){
                //      summary
                //      create and return an array based on the internal collection
                return [].concat(q);    //      array
        };
}

}