You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ni...@apache.org on 2008/04/20 20:40:28 UTC
svn commit: r649952 - in /commons/sandbox/me/trunk:
src/org/apache/commons/me/util/ArrayList.java
src/org/apache/commons/me/util/List.java
test-src/org/apache/commons/me/util/TestArrayList.java
Author: nick
Date: Sun Apr 20 11:40:27 2008
New Revision: 649952
URL: http://svn.apache.org/viewvc?rev=649952&view=rev
Log:
ArrayList implementation and tests
Added:
commons/sandbox/me/trunk/src/org/apache/commons/me/util/ArrayList.java (with props)
commons/sandbox/me/trunk/src/org/apache/commons/me/util/List.java (with props)
commons/sandbox/me/trunk/test-src/org/apache/commons/me/util/TestArrayList.java (with props)
Added: commons/sandbox/me/trunk/src/org/apache/commons/me/util/ArrayList.java
URL: http://svn.apache.org/viewvc/commons/sandbox/me/trunk/src/org/apache/commons/me/util/ArrayList.java?rev=649952&view=auto
==============================================================================
--- commons/sandbox/me/trunk/src/org/apache/commons/me/util/ArrayList.java (added)
+++ commons/sandbox/me/trunk/src/org/apache/commons/me/util/ArrayList.java Sun Apr 20 11:40:27 2008
@@ -0,0 +1,59 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.commons.me.util;
+
+import java.util.Vector;
+
+/**
+ * An implementation of java.util.Array for JavaME.
+ * Uses a Vector to implement the functionality.
+ */
+public class ArrayList extends Vector implements List {
+ public boolean add(Object o) {
+ addElement(o);
+ return true;
+ }
+ public boolean addAll(List list) {
+ for(int i=0; i<list.size(); i++) {
+ addElement(list.get(i));
+ }
+ return true;
+ }
+
+ public void clear() {
+ removeAllElements();
+ }
+
+ public Object get(int index) {
+ return elementAt(index);
+ }
+ public Object set(int index, Object o) {
+ setElementAt(o, index);
+ return o;
+ }
+
+ public Object[] toArray() {
+ return toArray(new Object[size()]);
+ }
+ public Object[] toArray(Object[] o) {
+ if(o.length < size()) {
+ throw new IllegalArgumentException("Passed array must be at least the same size as the ArrayList, as JavaME won't allow us to dynamically create a new, larger array!");
+ }
+ copyInto(o);
+ return o;
+ }
+}
Propchange: commons/sandbox/me/trunk/src/org/apache/commons/me/util/ArrayList.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: commons/sandbox/me/trunk/src/org/apache/commons/me/util/List.java
URL: http://svn.apache.org/viewvc/commons/sandbox/me/trunk/src/org/apache/commons/me/util/List.java?rev=649952&view=auto
==============================================================================
--- commons/sandbox/me/trunk/src/org/apache/commons/me/util/List.java (added)
+++ commons/sandbox/me/trunk/src/org/apache/commons/me/util/List.java Sun Apr 20 11:40:27 2008
@@ -0,0 +1,38 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.commons.me.util;
+
+/**
+ * A definition of java.util.List for JavaME
+ */
+public interface List {
+ public boolean add(Object o);
+ public boolean addAll(List l);
+
+ public void clear();
+ public int size();
+
+ public boolean contains(Object o);
+ public Object get(int index);
+ public Object set(int index, Object o);
+
+ public int indexOf(Object o);
+ public int lastIndexOf(Object o);
+
+ public Object[] toArray();
+ public Object[] toArray(Object[] o);
+}
Propchange: commons/sandbox/me/trunk/src/org/apache/commons/me/util/List.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: commons/sandbox/me/trunk/test-src/org/apache/commons/me/util/TestArrayList.java
URL: http://svn.apache.org/viewvc/commons/sandbox/me/trunk/test-src/org/apache/commons/me/util/TestArrayList.java?rev=649952&view=auto
==============================================================================
--- commons/sandbox/me/trunk/test-src/org/apache/commons/me/util/TestArrayList.java (added)
+++ commons/sandbox/me/trunk/test-src/org/apache/commons/me/util/TestArrayList.java Sun Apr 20 11:40:27 2008
@@ -0,0 +1,68 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.commons.me.util;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for the ArrayList implementation
+ */
+public class TestArrayList extends TestCase {
+ public void testNormalUse() {
+ ArrayList l = new ArrayList();
+ assertEquals(0, l.size());
+
+ String s1 = "test";
+ String s2 = "test2";
+ Integer i1 = new Integer(11);
+
+ assertFalse(l.contains(s1));
+ assertFalse(l.contains(s2));
+ assertFalse(l.contains(i1));
+
+ l.add(s1);
+ assertEquals(1, l.size());
+ assertTrue(l.contains(s1));
+ assertFalse(l.contains(s2));
+ assertFalse(l.contains(i1));
+
+ l.add(s2);
+ assertEquals(2, l.size());
+ assertTrue(l.contains(s1));
+ assertTrue(l.contains(s2));
+ assertFalse(l.contains(i1));
+
+ l.set(1, i1);
+ assertEquals(2, l.size());
+ assertTrue(l.contains(s1));
+ assertFalse(l.contains(s2));
+ assertTrue(l.contains(i1));
+
+ assertEquals(s1, l.get(0));
+ assertEquals(i1, l.get(1));
+
+ assertEquals(2, l.toArray().length);
+ assertEquals(2, l.toArray(new Object[2]).length);
+ assertEquals(3, l.toArray(new Object[3]).length);
+ try {
+ l.toArray(new Object[0]);
+ fail();
+ } catch(IllegalArgumentException e) {
+ // good, expected
+ }
+ }
+}
Propchange: commons/sandbox/me/trunk/test-src/org/apache/commons/me/util/TestArrayList.java
------------------------------------------------------------------------------
svn:eol-style = native