1e3f6868dac3b4c4714637d12b93d97823011a35cshowardpackage autotest.common;
21c8c2215e525de8813c375e796354f8ffb811a08showard
31c8c2215e525de8813c375e796354f8ffb811a08showardimport com.google.gwt.json.client.JSONArray;
41c8c2215e525de8813c375e796354f8ffb811a08showardimport com.google.gwt.json.client.JSONValue;
51c8c2215e525de8813c375e796354f8ffb811a08showard
61c8c2215e525de8813c375e796354f8ffb811a08showardimport java.util.AbstractList;
71c8c2215e525de8813c375e796354f8ffb811a08showard
81c8c2215e525de8813c375e796354f8ffb811a08showard/**
91c8c2215e525de8813c375e796354f8ffb811a08showard * Wraps a JSONArray in a handy-dandy java.util.List interface.
101c8c2215e525de8813c375e796354f8ffb811a08showard */
116bc47015cce0ebc2fc255d3950bfeaf4851f36fdshowardpublic class JSONArrayList<T extends JSONValue> extends AbstractList<T> {
12b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward    private JSONArray backingArray;
13b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward
14b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward    public JSONArrayList() {
15b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward        backingArray = new JSONArray();
16b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward    }
171c8c2215e525de8813c375e796354f8ffb811a08showard
181c8c2215e525de8813c375e796354f8ffb811a08showard    public JSONArrayList(JSONArray array) {
191c8c2215e525de8813c375e796354f8ffb811a08showard        backingArray = array;
201c8c2215e525de8813c375e796354f8ffb811a08showard    }
211c8c2215e525de8813c375e796354f8ffb811a08showard
226bc47015cce0ebc2fc255d3950bfeaf4851f36fdshoward    @Override
236bc47015cce0ebc2fc255d3950bfeaf4851f36fdshoward    public void add(int index, T object) {
241c8c2215e525de8813c375e796354f8ffb811a08showard        backingArray.set(index, object);
251c8c2215e525de8813c375e796354f8ffb811a08showard    }
261c8c2215e525de8813c375e796354f8ffb811a08showard
276bc47015cce0ebc2fc255d3950bfeaf4851f36fdshoward    @SuppressWarnings("unchecked")
286bc47015cce0ebc2fc255d3950bfeaf4851f36fdshoward    @Override
296bc47015cce0ebc2fc255d3950bfeaf4851f36fdshoward    public T get(int index) {
306bc47015cce0ebc2fc255d3950bfeaf4851f36fdshoward        return (T) backingArray.get(index);
311c8c2215e525de8813c375e796354f8ffb811a08showard    }
321c8c2215e525de8813c375e796354f8ffb811a08showard
331c8c2215e525de8813c375e796354f8ffb811a08showard    // JSONArrays don't directly support this
346bc47015cce0ebc2fc255d3950bfeaf4851f36fdshoward    @Override
356bc47015cce0ebc2fc255d3950bfeaf4851f36fdshoward    public T remove(int arg0) {
361c8c2215e525de8813c375e796354f8ffb811a08showard        throw new UnsupportedOperationException();
371c8c2215e525de8813c375e796354f8ffb811a08showard    }
381c8c2215e525de8813c375e796354f8ffb811a08showard
396bc47015cce0ebc2fc255d3950bfeaf4851f36fdshoward    @Override
401c8c2215e525de8813c375e796354f8ffb811a08showard    public int size() {
411c8c2215e525de8813c375e796354f8ffb811a08showard        return backingArray.size();
421c8c2215e525de8813c375e796354f8ffb811a08showard    }
43b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward
44b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward    public JSONArray getBackingArray() {
45b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward        return backingArray;
46b9c6617bdc063b3b4aa760a0a45190ee069139fdshoward    }
471c8c2215e525de8813c375e796354f8ffb811a08showard}
48