| /* |
| Copyright (c) 2004-2006, The Dojo Foundation |
| All Rights Reserved. |
| |
| Licensed under the Academic Free License version 2.1 or above OR the |
| modified BSD license. For more information on Dojo licensing, see: |
| |
| http://dojotoolkit.org/community/licensing.shtml |
| */ |
| |
| |
| |
| dojo.provide("dojo.collections.ArrayList"); |
| dojo.require("dojo.collections.Collections"); |
| dojo.collections.ArrayList = function (arr) { |
| var items = []; |
| if (arr) { |
| items = items.concat(arr); |
| } |
| this.count = items.length; |
| this.add = function (obj) { |
| items.push(obj); |
| this.count = items.length; |
| }; |
| this.addRange = function (a) { |
| if (a.getIterator) { |
| var e = a.getIterator(); |
| while (!e.atEnd()) { |
| this.add(e.get()); |
| } |
| this.count = items.length; |
| } else { |
| for (var i = 0; i < a.length; i++) { |
| items.push(a[i]); |
| } |
| this.count = items.length; |
| } |
| }; |
| this.clear = function () { |
| items.splice(0, items.length); |
| this.count = 0; |
| }; |
| this.clone = function () { |
| return new dojo.collections.ArrayList(items); |
| }; |
| this.contains = function (obj) { |
| for (var i = 0; i < items.length; i++) { |
| if (items[i] == obj) { |
| return true; |
| } |
| } |
| return false; |
| }; |
| this.forEach = function (fn, scope) { |
| var s = scope || dj_global; |
| if (Array.forEach) { |
| Array.forEach(items, fn, s); |
| } else { |
| for (var i = 0; i < items.length; i++) { |
| fn.call(s, items[i], i, items); |
| } |
| } |
| }; |
| this.getIterator = function () { |
| return new dojo.collections.Iterator(items); |
| }; |
| this.indexOf = function (obj) { |
| for (var i = 0; i < items.length; i++) { |
| if (items[i] == obj) { |
| return i; |
| } |
| } |
| return -1; |
| }; |
| this.insert = function (i, obj) { |
| items.splice(i, 0, obj); |
| this.count = items.length; |
| }; |
| this.item = function (i) { |
| return items[i]; |
| }; |
| this.remove = function (obj) { |
| var i = this.indexOf(obj); |
| if (i >= 0) { |
| items.splice(i, 1); |
| } |
| this.count = items.length; |
| }; |
| this.removeAt = function (i) { |
| items.splice(i, 1); |
| this.count = items.length; |
| }; |
| this.reverse = function () { |
| items.reverse(); |
| }; |
| this.sort = function (fn) { |
| if (fn) { |
| items.sort(fn); |
| } else { |
| items.sort(); |
| } |
| }; |
| this.setByIndex = function (i, obj) { |
| items[i] = obj; |
| this.count = items.length; |
| }; |
| this.toArray = function () { |
| return [].concat(items); |
| }; |
| this.toString = function (delim) { |
| return items.join((delim || ",")); |
| }; |
| }; |
| |