You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by nd...@apache.org on 2006/06/10 18:54:47 UTC
svn commit: r413330 - in
/incubator/harmony/enhanced/classlib/trunk/modules/luni/src:
main/java/java/util/LinkedList.java
test/java/tests/api/java/util/LinkedListTest.java
Author: ndbeyer
Date: Sat Jun 10 09:54:47 2006
New Revision: 413330
URL: http://svn.apache.org/viewvc?rev=413330&view=rev
Log:
Apply modified patch for HARMONY-494.
Modified:
incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/LinkedList.java
incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/LinkedListTest.java
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/LinkedList.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/LinkedList.java?rev=413330&r1=413329&r2=413330&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/LinkedList.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/LinkedList.java Sat Jun 10 09:54:47 2006
@@ -28,8 +28,8 @@
* elements can be any objects.
* @since 1.2
*/
-public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>,
- Cloneable, Serializable {
+public class LinkedList<E> extends AbstractSequentialList<E> implements
+ List<E>, Queue<E>, Cloneable, Serializable {
private static final long serialVersionUID = 876323262645176354L;
@@ -283,6 +283,7 @@
return true;
}
+
/**
* Adds the objects in the specified Collection to this LinkedList.
*
@@ -642,6 +643,28 @@
public int size() {
return size;
}
+
+ public boolean offer(E o) {
+ add(o);
+ return true;
+ }
+
+ public E poll() {
+ return size == 0 ? null : removeFirst();
+ }
+
+ public E remove() {
+ return removeFirst();
+ }
+
+ public E peek() {
+ Link<E> first = voidLink.next;
+ return first == voidLink ? null : first.data;
+ }
+
+ public E element() {
+ return getFirst();
+ }
/**
* Answers a new array containing all elements contained in this LinkedList.
@@ -693,7 +716,7 @@
private void writeObject(ObjectOutputStream stream) throws IOException {
stream.defaultWriteObject();
stream.writeInt(size);
- Iterator it = iterator();
+ Iterator<E> it = iterator();
while (it.hasNext())
stream.writeObject(it.next());
}
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/LinkedListTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/LinkedListTest.java?rev=413330&r1=413329&r2=413330&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/LinkedListTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/LinkedListTest.java Sat Jun 10 09:54:47 2006
@@ -22,6 +22,8 @@
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
+import java.util.NoSuchElementException;
+
import tests.support.Support_ListTest;
@@ -467,6 +469,42 @@
while (li.hasNext())
assertTrue("Lists are not equal", li.next() == ri.next());
}
+
+ public void test_offer() {
+ int origSize = ll.size();
+ assertTrue("offer() should return true'", ll.offer(objArray[0]));
+ assertEquals("offer() should add an element as the last one", origSize, ll.lastIndexOf(objArray[0]));
+ }
+
+ public void test_poll() {
+ assertEquals("should return the head", objArray[0], ll.poll());
+ LinkedList list = new LinkedList();
+ assertNull("should return 'null' if list is empty", list.poll());
+ }
+
+ public void test_remove() {
+ for (int i = 0; i < objArray.length; i++) {
+ assertEquals("should remove the head", objArray[i], ll.remove());
+ }
+ assertEquals("should be empty", 0, ll.size());
+ try {
+ ll.remove();
+ fail("NoSuchElementException is expected when removing from the empty list");
+ } catch (NoSuchElementException e) {
+ //-- expected
+ }
+ }
+
+ public void test_element() {
+ assertEquals("should return the head", objArray[0], ll.element());
+ assertEquals("element() should remove nothing", objArray.length, ll.size());
+ try {
+ new LinkedList().remove();
+ fail("NoSuchElementException is expected when the list is empty");
+ } catch (NoSuchElementException e) {
+ //-- expected
+ }
+ }
/**
* Sets up the fixture, for example, open a network connection. This method