New file |
0,0 → 1,72 |
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 |
}; |
} |
|
} |