diff --git a/src/java/org/apache/commons/collections/list/AbstractLinkedList.java b/src/java/org/apache/commons/collections/list/AbstractLinkedList.java index 441d743ba..cd6c01f98 100644 --- a/src/java/org/apache/commons/collections/list/AbstractLinkedList.java +++ b/src/java/org/apache/commons/collections/list/AbstractLinkedList.java @@ -38,7 +38,7 @@ import org.apache.commons.collections.OrderedIterator; * is here. * * @since Commons Collections 3.0 - * @version $Revision: 1.8 $ $Date: 2004/02/18 01:12:26 $ + * @version $Revision: 1.9 $ $Date: 2004/04/20 23:33:54 $ * * @author Rich Dougherty * @author Phil Steitz @@ -110,7 +110,7 @@ public abstract class AbstractLinkedList implements List { public Object get(int index) { Node node = getNode(index, false); - return node.value; + return node.getValue(); } //----------------------------------------------------------------------- @@ -130,7 +130,7 @@ public abstract class AbstractLinkedList implements List { public int indexOf(Object value) { int i = 0; for (Node node = header.next; node != header; node = node.next) { - if (isEqualValue(node.value, value)) { + if (isEqualValue(node.getValue(), value)) { return i; } i++; @@ -141,7 +141,7 @@ public abstract class AbstractLinkedList implements List { public int lastIndexOf(Object value) { int i = size - 1; for (Node node = header.previous; node != header; node = node.previous) { - if (isEqualValue(node.value, value)) { + if (isEqualValue(node.getValue(), value)) { return i; } i--; @@ -177,7 +177,7 @@ public abstract class AbstractLinkedList implements List { // Copy the values into the array int i = 0; for (Node node = header.next; node != header; node = node.next, i++) { - array[i] = node.value; + array[i] = node.getValue(); } // Set the value after the last value to null if (array.length > size) { @@ -224,14 +224,14 @@ public abstract class AbstractLinkedList implements List { //----------------------------------------------------------------------- public Object remove(int index) { Node node = getNode(index, false); - Object oldValue = node.value; + Object oldValue = node.getValue(); removeNode(node); return oldValue; } public boolean remove(Object value) { for (Node node = header.next; node != header; node = node.next) { - if (isEqualValue(node.value, value)) { + if (isEqualValue(node.getValue(), value)) { removeNode(node); return true; } @@ -266,7 +266,7 @@ public abstract class AbstractLinkedList implements List { public Object set(int index, Object value) { Node node = getNode(index, false); - Object oldValue = node.value; + Object oldValue = node.getValue(); updateNode(node, value); return oldValue; } @@ -281,7 +281,7 @@ public abstract class AbstractLinkedList implements List { if (node == header) { throw new NoSuchElementException(); } - return node.value; + return node.getValue(); } public Object getLast() { @@ -289,7 +289,7 @@ public abstract class AbstractLinkedList implements List { if (node == header) { throw new NoSuchElementException(); } - return node.value; + return node.getValue(); } public boolean addFirst(Object o) { @@ -307,7 +307,7 @@ public abstract class AbstractLinkedList implements List { if (node == header) { throw new NoSuchElementException(); } - Object oldValue = node.value; + Object oldValue = node.getValue(); removeNode(node); return oldValue; } @@ -317,7 +317,7 @@ public abstract class AbstractLinkedList implements List { if (node == header) { throw new NoSuchElementException(); } - Object oldValue = node.value; + Object oldValue = node.getValue(); removeNode(node); return oldValue; } @@ -399,7 +399,7 @@ public abstract class AbstractLinkedList implements List { * @param value new value of the node */ protected void updateNode(Node node, Object value) { - node.value = value; + node.setValue(value); } /** @@ -590,6 +590,9 @@ public abstract class AbstractLinkedList implements List { //----------------------------------------------------------------------- /** * A node within the linked list. + *

+ * From Commons Collections 3.1, all access to the value property + * is via the methods on this class. */ protected static class Node { @@ -632,6 +635,66 @@ public abstract class AbstractLinkedList implements List { this.next = next; this.value = value; } + + /** + * Gets the value of the node. + * + * @return the value + * @since Commons Collections 3.1 + */ + protected Object getValue() { + return value; + } + + /** + * Sets the value of the node. + * + * @param value the value + * @since Commons Collections 3.1 + */ + protected void setValue(Object value) { + this.value = value; + } + + /** + * Gets the previous node. + * + * @return the previous node + * @since Commons Collections 3.1 + */ + protected Node getPreviousNode() { + return previous; + } + + /** + * Sets the previous node. + * + * @param previous the previous node + * @since Commons Collections 3.1 + */ + protected void setPreviousNode(Node previous) { + this.previous = previous; + } + + /** + * Gets the next node. + * + * @return the next node + * @since Commons Collections 3.1 + */ + protected Node getNextNode() { + return next; + } + + /** + * Sets the next node. + * + * @param next the next node + * @since Commons Collections 3.1 + */ + protected void setNextNode(Node next) { + this.next = next; + } } //----------------------------------------------------------------------- @@ -720,10 +783,9 @@ public abstract class AbstractLinkedList implements List { public Object next() { checkModCount(); if (!hasNext()) { - throw new NoSuchElementException("No element at index " + - nextIndex + "."); + throw new NoSuchElementException("No element at index " + nextIndex + "."); } - Object value = next.value; + Object value = next.getValue(); current = next; next = next.next; nextIndex++; @@ -740,7 +802,7 @@ public abstract class AbstractLinkedList implements List { throw new NoSuchElementException("Already at start of list."); } next = next.previous; - Object value = next.value; + Object value = next.getValue(); current = next; nextIndex--; return value; @@ -765,7 +827,7 @@ public abstract class AbstractLinkedList implements List { public void set(Object obj) { checkModCount(); - getLastNodeReturned().value = obj; + getLastNodeReturned().setValue(obj); } public void add(Object obj) {