Author: bayard Date: Tue Sep 15 05:42:44 2009 New Revision: 815004 URL: http://svn.apache.org/viewvc?rev=815004&view=rev Log: Merging from -r468106:814127 of collections_jdk5_branch - namely where this code was generified in r738956.
Tabs also cleaned up in r814044. Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/comparators/NullComparator.java commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ArrayIterator.java commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ArrayListIterator.java commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ObjectArrayListIterator.java commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ObjectGraphIterator.java commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/SingletonIterator.java commons/proper/collections/trunk/src/test/org/apache/commons/collections/comparators/AbstractTestComparator.java commons/proper/collections/trunk/src/test/org/apache/commons/collections/comparators/TestNullComparator.java commons/proper/collections/trunk/src/test/org/apache/commons/collections/iterators/TestSingletonListIterator.java commons/proper/collections/trunk/src/test/org/apache/commons/collections/list/TestTreeList.java Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/comparators/NullComparator.java URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/comparators/NullComparator.java?rev=815004&r1=815003&r2=815004&view=diff ============================================================================== --- commons/proper/collections/trunk/src/java/org/apache/commons/collections/comparators/NullComparator.java (original) +++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/comparators/NullComparator.java Tue Sep 15 05:42:44 2009 @@ -19,6 +19,8 @@ import java.io.Serializable; import java.util.Comparator; +import org.apache.commons.collections.ComparatorUtils; + /** * A Comparator that will compare nulls to be either lower or higher than * other objects. @@ -28,7 +30,7 @@ * * @author Michael A. Smith */ -public class NullComparator implements Comparator, Serializable { +public class NullComparator<E> implements Comparator<E>, Serializable { /** Serialization version. */ private static final long serialVersionUID = -5820772575483504339L; @@ -36,7 +38,7 @@ /** * The comparator to use when comparing two non-<code>null</code> objects. **/ - private Comparator nonNullComparator; + private Comparator<E> nonNullComparator; /** * Specifies whether a <code>null</code> are compared as higher than @@ -51,8 +53,9 @@ * non-<code>null</code> objects, the {...@link ComparableComparator} is * used. **/ + @SuppressWarnings("unchecked") public NullComparator() { - this(ComparableComparator.getInstance(), true); + this(ComparatorUtils.NATURAL_COMPARATOR, true); } /** @@ -68,7 +71,7 @@ * @exception NullPointerException if <code>nonNullComparator</code> is * <code>null</code> **/ - public NullComparator(Comparator nonNullComparator) { + public NullComparator(Comparator<E> nonNullComparator) { this(nonNullComparator, true); } @@ -84,8 +87,9 @@ * that <code>null</code> should be compared as lower than a * non-<code>null</code> object. **/ + @SuppressWarnings("unchecked") public NullComparator(boolean nullsAreHigh) { - this(ComparableComparator.getInstance(), nullsAreHigh); + this(ComparatorUtils.NATURAL_COMPARATOR, nullsAreHigh); } /** @@ -107,11 +111,11 @@ * @exception NullPointerException if <code>nonNullComparator</code> is * <code>null</code> **/ - public NullComparator(Comparator nonNullComparator, boolean nullsAreHigh) { + public NullComparator(Comparator<E> nonNullComparator, boolean nullsAreHigh) { this.nonNullComparator = nonNullComparator; this.nullsAreHigh = nullsAreHigh; - if(nonNullComparator == null) { + if (nonNullComparator == null) { throw new NullPointerException("null nonNullComparator"); } } @@ -133,7 +137,7 @@ * "higher" than (greater than, after, etc.) <code>o2</code>; or * <code>0</code> if <code>o1</code> and <code>o2</code> are equal. **/ - public int compare(Object o1, Object o2) { + public int compare(E o1, E o2) { if(o1 == o2) { return 0; } if(o1 == null) { return (this.nullsAreHigh ? 1 : -1); } if(o2 == null) { return (this.nullsAreHigh ? -1 : 1); } @@ -167,8 +171,8 @@ if(obj == this) { return true; } if(!obj.getClass().equals(this.getClass())) { return false; } - NullComparator other = (NullComparator)obj; - + NullComparator<?> other = (NullComparator<?>) obj; + return ((this.nullsAreHigh == other.nullsAreHigh) && (this.nonNullComparator.equals(other.nonNullComparator))); } Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ArrayIterator.java URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ArrayIterator.java?rev=815004&r1=815003&r2=815004&view=diff ============================================================================== --- commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ArrayIterator.java (original) +++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ArrayIterator.java Tue Sep 15 05:42:44 2009 @@ -41,7 +41,7 @@ * @author Neil O'Toole * @author Stephen Colebourne */ -public class ArrayIterator implements ResettableIterator { +public class ArrayIterator<E> implements ResettableIterator<E> { /** The array to iterate over */ protected Object array; @@ -159,11 +159,12 @@ * @throws NoSuchElementException if all the elements in the array * have already been returned */ - public Object next() { + @SuppressWarnings("unchecked") + public E next() { if (hasNext() == false) { throw new NoSuchElementException(); } - return Array.get(array, index++); + return (E) Array.get(array, index++); } /** Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ArrayListIterator.java URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ArrayListIterator.java?rev=815004&r1=815003&r2=815004&view=diff ============================================================================== --- commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ArrayListIterator.java (original) +++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ArrayListIterator.java Tue Sep 15 05:42:44 2009 @@ -44,8 +44,8 @@ * @author Stephen Colebourne * @author Phil Steitz */ -public class ArrayListIterator extends ArrayIterator - implements ListIterator, ResettableListIterator { +public class ArrayListIterator<E> extends ArrayIterator<E> + implements ListIterator<E>, ResettableListIterator<E> { /** * Holds the index of the last item returned by a call to <code>next()</code> @@ -129,12 +129,13 @@ * @return the previous element * @throws NoSuchElementException if there is no previous element */ - public Object previous() { + @SuppressWarnings("unchecked") + public E previous() { if (hasPrevious() == false) { throw new NoSuchElementException(); } this.lastItemIndex = --this.index; - return Array.get(this.array, this.index); + return (E) Array.get(this.array, this.index); } /** @@ -143,12 +144,13 @@ * @return the next element * @throws NoSuchElementException if there is no next element */ - public Object next() { + @SuppressWarnings("unchecked") + public E next() { if (hasNext() == false) { throw new NoSuchElementException(); } this.lastItemIndex = this.index; - return Array.get(this.array, this.index++); + return (E) Array.get(this.array, this.index++); } /** Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ObjectArrayListIterator.java URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ObjectArrayListIterator.java?rev=815004&r1=815003&r2=815004&view=diff ============================================================================== --- commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ObjectArrayListIterator.java (original) +++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ObjectArrayListIterator.java Tue Sep 15 05:42:44 2009 @@ -41,8 +41,8 @@ * @author Stephen Colebourne * @author Phil Steitz */ -public class ObjectArrayListIterator extends ObjectArrayIterator - implements ListIterator, ResettableListIterator { +public class ObjectArrayListIterator<E> extends ObjectArrayIterator<E> + implements ListIterator<E>, ResettableListIterator<E> { /** * Holds the index of the last item returned by a call to <code>next()</code> @@ -69,7 +69,7 @@ * @param array the array to iterate over * @throws NullPointerException if <code>array</code> is <code>null</code> */ - public ObjectArrayListIterator(Object[] array) { + public ObjectArrayListIterator(E[] array) { super(array); } @@ -82,7 +82,7 @@ * @throws NullPointerException if <code>array</code> is <code>null</code> * @throws IndexOutOfBoundsException if the start index is out of bounds */ - public ObjectArrayListIterator(Object[] array, int start) { + public ObjectArrayListIterator(E[] array, int start) { super(array, start); } @@ -97,7 +97,7 @@ * @throws IllegalArgumentException if end index is before the start * @throws NullPointerException if <code>array</code> is <code>null</code> */ - public ObjectArrayListIterator(Object[] array, int start, int end) { + public ObjectArrayListIterator(E[] array, int start, int end) { super(array, start, end); } @@ -119,7 +119,7 @@ * @return the previous element * @throws NoSuchElementException if there is no previous element */ - public Object previous() { + public E previous() { if (hasPrevious() == false) { throw new NoSuchElementException(); } @@ -133,7 +133,7 @@ * @return the next element * @throws NoSuchElementException if there is no next element */ - public Object next() { + public E next() { if (hasNext() == false) { throw new NoSuchElementException(); } @@ -166,7 +166,7 @@ * @param obj the object to add * @throws UnsupportedOperationException always thrown. */ - public void add(Object obj) { + public void add(E obj) { throw new UnsupportedOperationException("add() method is not supported"); } @@ -187,7 +187,7 @@ * @throws IllegalStateException if next() has not yet been called. * @throws ClassCastException if the object type is unsuitable for the array */ - public void set(Object obj) { + public void set(E obj) { if (this.lastItemIndex == -1) { throw new IllegalStateException("must call next() or previous() before a call to set()"); } Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ObjectGraphIterator.java URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ObjectGraphIterator.java?rev=815004&r1=815003&r2=815004&view=diff ============================================================================== --- commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ObjectGraphIterator.java (original) +++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/ObjectGraphIterator.java Tue Sep 15 05:42:44 2009 @@ -75,23 +75,23 @@ * * @author Stephen Colebourne */ -public class ObjectGraphIterator implements Iterator { +public class ObjectGraphIterator<E> implements Iterator<E> { /** The stack of iterators */ - protected final ArrayStack stack = new ArrayStack(8); + protected final ArrayStack<Iterator<? extends E>> stack = new ArrayStack<Iterator<? extends E>>(8); /** The root object in the tree */ - protected Object root; + protected E root; /** The transformer to use */ - protected Transformer transformer; + protected Transformer<? super E, ? extends E> transformer; /** Whether there is another element in the iteration */ - protected boolean hasNext = false; + protected boolean hasNext = false; /** The current iterator */ - protected Iterator currentIterator; + protected Iterator<? extends E> currentIterator; /** The current value */ - protected Object currentValue; + protected E currentValue; /** The last used iterator, needed for remove() */ - protected Iterator lastUsedIterator; + protected Iterator<? extends E> lastUsedIterator; //----------------------------------------------------------------------- /** @@ -103,10 +103,11 @@ * @param root the root object, null will result in an empty iterator * @param transformer the transformer to use, null will use a no effect transformer */ - public ObjectGraphIterator(Object root, Transformer transformer) { + @SuppressWarnings("unchecked") + public ObjectGraphIterator(E root, Transformer<? super E, ? extends E> transformer) { super(); if (root instanceof Iterator) { - this.currentIterator = (Iterator) root; + this.currentIterator = (Iterator<? extends E>) root; } else { this.root = root; } @@ -123,7 +124,7 @@ * * @param rootIterator the root iterator, null will result in an empty iterator */ - public ObjectGraphIterator(Iterator rootIterator) { + public ObjectGraphIterator(Iterator<? extends E> rootIterator) { super(); this.currentIterator = rootIterator; this.transformer = null; @@ -158,10 +159,11 @@ * * @param value the value to start from */ - protected void findNext(Object value) { + @SuppressWarnings("unchecked") + protected void findNext(E value) { if (value instanceof Iterator) { // need to examine this iterator - findNextByIterator((Iterator) value); + findNextByIterator((Iterator<? extends E>) value); } else { // next value found currentValue = value; @@ -174,7 +176,7 @@ * * @param iterator the iterator to start from */ - protected void findNextByIterator(Iterator iterator) { + protected void findNextByIterator(Iterator<? extends E> iterator) { if (iterator != currentIterator) { // recurse a level if (currentIterator != null) { @@ -184,7 +186,7 @@ } while (currentIterator.hasNext() && hasNext == false) { - Object next = currentIterator.next(); + E next = currentIterator.next(); if (transformer != null) { next = transformer.transform(next); } @@ -196,7 +198,7 @@ // all iterators exhausted } else { // current iterator exhausted, go up a level - currentIterator = (Iterator) stack.pop(); + currentIterator = stack.pop(); findNextByIterator(currentIterator); } } @@ -218,13 +220,13 @@ * @return the next element from the iteration * @throws NoSuchElementException if all the Iterators are exhausted */ - public Object next() { + public E next() { updateCurrentIterator(); if (hasNext == false) { throw new NoSuchElementException("No more elements in the iteration"); } lastUsedIterator = currentIterator; - Object result = currentValue; + E result = currentValue; currentValue = null; hasNext = false; return result; Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/SingletonIterator.java URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/SingletonIterator.java?rev=815004&r1=815003&r2=815004&view=diff ============================================================================== --- commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/SingletonIterator.java (original) +++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/SingletonIterator.java Tue Sep 15 05:42:44 2009 @@ -32,8 +32,8 @@ * @author Stephen Colebourne * @author Rodney Waldhoff */ -public class SingletonIterator - implements Iterator, ResettableIterator { +public class SingletonIterator<E> + implements Iterator<E>, ResettableIterator<E> { /** Whether remove is allowed */ private final boolean removeAllowed; @@ -42,7 +42,7 @@ /** Has the element been removed */ private boolean removed = false; /** The object */ - private Object object; + private E object; /** * Constructs a new <code>SingletonIterator</code> where <code>remove</code> @@ -50,7 +50,7 @@ * * @param object the single object to return from the iterator */ - public SingletonIterator(Object object) { + public SingletonIterator(E object) { this(object, true); } @@ -62,7 +62,7 @@ * @param removeAllowed true if remove is allowed * @since Commons Collections 3.1 */ - public SingletonIterator(Object object, boolean removeAllowed) { + public SingletonIterator(E object, boolean removeAllowed) { super(); this.object = object; this.removeAllowed = removeAllowed; @@ -89,7 +89,7 @@ * @throws NoSuchElementException if the single object has already * been returned */ - public Object next() { + public E next() { if (!beforeFirst || removed) { throw new NoSuchElementException(); } Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/comparators/AbstractTestComparator.java URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/comparators/AbstractTestComparator.java?rev=815004&r1=815003&r2=815004&view=diff ============================================================================== --- commons/proper/collections/trunk/src/test/org/apache/commons/collections/comparators/AbstractTestComparator.java (original) +++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/comparators/AbstractTestComparator.java Tue Sep 15 05:42:44 2009 @@ -34,7 +34,7 @@ * * @author Stephen Colebourne */ -public abstract class AbstractTestComparator extends AbstractTestObject { +public abstract class AbstractTestComparator<T> extends AbstractTestObject { /** * JUnit constructor. @@ -46,19 +46,13 @@ } //----------------------------------------------------------------------- - /** - * Implement this method to return the comparator to test. - * - * @return the comparator to test - */ - public abstract Comparator makeComparator(); /** * Implement this method to return a list of sorted objects. * * @return sorted objects */ - public abstract List getComparableObjectsOrdered(); + public abstract List<T> getComparableObjectsOrdered(); //----------------------------------------------------------------------- /** @@ -66,9 +60,7 @@ * * @return a full iterator */ - public Object makeObject() { - return makeComparator(); - } + public abstract Comparator<T> makeObject(); /** * Overrides superclass to block tests. @@ -96,23 +88,22 @@ /** * Reverse the list. */ - protected void reverseObjects(List list) { + protected void reverseObjects(List<?> list) { Collections.reverse(list); } /** * Randomize the list. */ - protected void randomizeObjects(List list) { + protected void randomizeObjects(List<?> list) { Collections.shuffle(list); } /** * Sort the list. */ - protected void sortObjects(List list, Comparator comparator) { - Collections.sort(list,comparator); - + protected void sortObjects(List<T> list, Comparator<? super T> comparator) { + Collections.sort(list, comparator); } //----------------------------------------------------------------------- @@ -120,43 +111,41 @@ * Test sorting an empty list */ public void testEmptyListSort() { - List list = new LinkedList(); - sortObjects(list, makeComparator()); + List<T> list = new LinkedList<T>(); + sortObjects(list, makeObject()); + + List<T> list2 = new LinkedList<T>(); - List list2 = new LinkedList(); - - assertTrue("Comparator cannot sort empty lists", - list2.equals(list)); + assertTrue("Comparator cannot sort empty lists", list2.equals(list)); } /** * Test sorting a reversed list. */ public void testReverseListSort() { - Comparator comparator = makeComparator(); + Comparator<T> comparator = makeObject(); - List randomList = getComparableObjectsOrdered(); + List<T> randomList = getComparableObjectsOrdered(); reverseObjects(randomList); - sortObjects(randomList,comparator); + sortObjects(randomList, comparator); - List orderedList = getComparableObjectsOrdered(); + List<T> orderedList = getComparableObjectsOrdered(); assertTrue("Comparator did not reorder the List correctly", orderedList.equals(randomList)); - } /** * Test sorting a random list. */ public void testRandomListSort() { - Comparator comparator = makeComparator(); + Comparator<T> comparator = makeObject(); - List randomList = getComparableObjectsOrdered(); + List<T> randomList = getComparableObjectsOrdered(); randomizeObjects(randomList); sortObjects(randomList,comparator); - List orderedList = getComparableObjectsOrdered(); + List<T> orderedList = getComparableObjectsOrdered(); /* debug Iterator i = randomList.iterator(); @@ -174,7 +163,7 @@ * Nearly all Comparators should be Serializable. */ public void testComparatorIsSerializable() { - Comparator comparator = makeComparator(); + Comparator<T> comparator = makeObject(); assertTrue("This comparator should be Serializable.", comparator instanceof Serializable); } @@ -195,37 +184,38 @@ * Compare the current serialized form of the Comparator * against the canonical version in SVN. */ + @SuppressWarnings("unchecked") public void testComparatorCompatibility() throws IOException, ClassNotFoundException { - if(!skipSerializedCanonicalTests()) { - Comparator comparator = null; + if (!skipSerializedCanonicalTests()) { + Comparator<T> comparator = null; // test to make sure the canonical form has been preserved try { - comparator = (Comparator) readExternalFormFromDisk(getCanonicalComparatorName(makeComparator())); + comparator = (Comparator<T>) readExternalFormFromDisk(getCanonicalComparatorName(makeObject())); } catch (FileNotFoundException exception) { boolean autoCreateSerialized = false; - if(autoCreateSerialized) { - comparator = makeComparator(); + if (autoCreateSerialized) { + comparator = makeObject(); String fileName = getCanonicalComparatorName(comparator); writeExternalFormToDisk((Serializable) comparator, fileName); - fail("Serialized form could not be found. A serialized version " + - "has now been written (and should be added to SVN): " + fileName); + fail("Serialized form could not be found. A serialized version " + + "has now been written (and should be added to CVS): " + fileName); } else { - fail("The Serialized form could be located to test serialization " + - "compatibility: " + exception.getMessage()); + fail("The Serialized form could be located to test serialization " + + "compatibility: " + exception.getMessage()); } } // make sure the canonical form produces the ordering we currently // expect - List randomList = getComparableObjectsOrdered(); + List<T> randomList = getComparableObjectsOrdered(); reverseObjects(randomList); - sortObjects(randomList,comparator); + sortObjects(randomList, comparator); - List orderedList = getComparableObjectsOrdered(); + List<T> orderedList = getComparableObjectsOrdered(); assertTrue("Comparator did not reorder the List correctly", orderedList.equals(randomList)); Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/comparators/TestNullComparator.java URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/comparators/TestNullComparator.java?rev=815004&r1=815003&r2=815004&view=diff ============================================================================== --- commons/proper/collections/trunk/src/test/org/apache/commons/collections/comparators/TestNullComparator.java (original) +++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/comparators/TestNullComparator.java Tue Sep 15 05:42:44 2009 @@ -30,7 +30,7 @@ * * @author Michael A. Smith */ -public abstract class TestNullComparator extends AbstractTestComparator { +public abstract class TestNullComparator extends AbstractTestComparator<Integer> { public TestNullComparator(String testName) { super(testName); @@ -52,12 +52,12 @@ super(testName); } - public Comparator makeComparator() { - return new NullComparator(); + public Comparator<Integer> makeObject() { + return new NullComparator<Integer>(); } - - public List getComparableObjectsOrdered() { - List list = new LinkedList(); + + public List<Integer> getComparableObjectsOrdered() { + List<Integer> list = new LinkedList<Integer>(); list.add(new Integer(1)); list.add(new Integer(2)); list.add(new Integer(3)); @@ -76,17 +76,17 @@ * Test the NullComparator with nulls low using the comparable comparator **/ public static class TestNullComparator2 extends TestNullComparator { - + public TestNullComparator2(String testName) { super(testName); } - - public Comparator makeComparator() { - return new NullComparator(false); - } - - public List getComparableObjectsOrdered() { - List list = new LinkedList(); + + public Comparator<Integer> makeObject() { + return new NullComparator<Integer>(false); + } + + public List<Integer> getComparableObjectsOrdered() { + List<Integer> list = new LinkedList<Integer>(); list.add(null); list.add(new Integer(1)); list.add(new Integer(2)); @@ -95,7 +95,7 @@ list.add(new Integer(5)); return list; } - + public String getCanonicalComparatorName(Object object) { return super.getCanonicalComparatorName(object) + "2"; } Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/iterators/TestSingletonListIterator.java URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/iterators/TestSingletonListIterator.java?rev=815004&r1=815003&r2=815004&view=diff ============================================================================== --- commons/proper/collections/trunk/src/test/org/apache/commons/collections/iterators/TestSingletonListIterator.java (original) +++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/iterators/TestSingletonListIterator.java Tue Sep 15 05:42:44 2009 @@ -31,7 +31,7 @@ * * @author Stephen Colebourne */ -public class TestSingletonListIterator extends AbstractTestListIterator { +public class TestSingletonListIterator<E> extends AbstractTestListIterator<E> { private static final Object testValue = "foo"; @@ -47,16 +47,17 @@ * Returns a SingletonListIterator from which * the element has already been removed. */ - public ListIterator makeEmptyListIterator() { - SingletonListIterator iter = (SingletonListIterator)makeFullIterator(); + public SingletonListIterator<E> makeEmptyIterator() { + SingletonListIterator<E> iter = makeObject(); iter.next(); iter.remove(); iter.reset(); return iter; } - public ListIterator makeFullListIterator() { - return new SingletonListIterator( testValue ); + @SuppressWarnings("unchecked") + public SingletonListIterator<E> makeObject() { + return new SingletonListIterator<E>((E) testValue); } public boolean supportsAdd() { @@ -72,7 +73,7 @@ } public void testIterator() { - ListIterator iter = (ListIterator) makeObject(); + ListIterator<E> iter = makeObject(); assertTrue( "Iterator should have next item", iter.hasNext() ); assertTrue( "Iterator should have no previous item", !iter.hasPrevious() ); assertEquals( "Iteration next index", 0, iter.nextIndex() ); @@ -118,7 +119,7 @@ } public void testReset() { - ResettableListIterator it = (ResettableListIterator) makeObject(); + ResettableListIterator<E> it = makeObject(); assertEquals(true, it.hasNext()); assertEquals(false, it.hasPrevious()); Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/list/TestTreeList.java URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/list/TestTreeList.java?rev=815004&r1=815003&r2=815004&view=diff ============================================================================== --- commons/proper/collections/trunk/src/test/org/apache/commons/collections/list/TestTreeList.java (original) +++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/list/TestTreeList.java Tue Sep 15 05:42:44 2009 @@ -31,8 +31,8 @@ * * @author Joerg Schmuecker */ -public class TestTreeList extends AbstractTestList { - +public class TestTreeList<E> extends AbstractTestList<E> { + public TestTreeList(String name) { super(name); } @@ -53,49 +53,49 @@ return BulkTest.makeSuite(TestTreeList.class); } - public static void benchmark(List l) { + public static void benchmark(List<? super Integer> l) { long start = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { l.add(new Integer(i)); } System.out.print(System.currentTimeMillis() - start + ";"); - + start = System.currentTimeMillis(); for (int i = 0; i < 200; i++) { l.toArray(); } System.out.print(System.currentTimeMillis() - start + ";"); - + start = System.currentTimeMillis(); for (int i = 0; i < 100; i++) { - java.util.Iterator it = l.iterator(); + java.util.Iterator<? super Integer> it = l.iterator(); while (it.hasNext()) { it.next(); } } System.out.print(System.currentTimeMillis() - start + ";"); - + start = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { int j = (int) (Math.random() * 100000); l.add(j, new Integer(-j)); } System.out.print(System.currentTimeMillis() - start + ";"); - + start = System.currentTimeMillis(); for (int i = 0; i < 50000; i++) { int j = (int) (Math.random() * 110000); l.get(j); } System.out.print(System.currentTimeMillis() - start + ";"); - + start = System.currentTimeMillis(); for (int i = 0; i < 200; i++) { int j = (int) (Math.random() * 100000); l.indexOf(new Integer(j)); } System.out.print(System.currentTimeMillis() - start + ";"); - + start = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { int j = (int) (Math.random() * 100000); @@ -105,18 +105,19 @@ } //----------------------------------------------------------------------- - public List makeEmptyList() { - return new TreeList(); + public TreeList<E> makeObject() { + return new TreeList<E>(); } //----------------------------------------------------------------------- + @SuppressWarnings("unchecked") public void testAddMultiple() { - List l = makeEmptyList(); - l.add("hugo"); - l.add("erna"); - l.add("daniel"); - l.add("andres"); - l.add("harald"); + List<E> l = makeObject(); + l.add((E) "hugo"); + l.add((E) "erna"); + l.add((E) "daniel"); + l.add((E) "andres"); + l.add((E) "harald"); l.add(0, null); assertEquals(null, l.get(0)); assertEquals("hugo", l.get(1)); @@ -126,13 +127,14 @@ assertEquals("harald", l.get(5)); } + @SuppressWarnings("unchecked") public void testRemove() { - List l = makeEmptyList(); - l.add("hugo"); - l.add("erna"); - l.add("daniel"); - l.add("andres"); - l.add("harald"); + List<E> l = makeObject(); + l.add((E) "hugo"); + l.add((E) "erna"); + l.add((E) "daniel"); + l.add((E) "andres"); + l.add((E) "harald"); l.add(0, null); int i = 0; assertEquals(null, l.get(i++)); @@ -164,23 +166,25 @@ assertEquals("harald", l.get(i++)); } + @SuppressWarnings("unchecked") public void testInsertBefore() { - List l = makeEmptyList(); - l.add("erna"); - l.add(0, "hugo"); + List<E> l = makeObject(); + l.add((E) "erna"); + l.add(0, (E) "hugo"); assertEquals("hugo", l.get(0)); assertEquals("erna", l.get(1)); } + @SuppressWarnings("unchecked") public void testIndexOf() { - List l = makeEmptyList(); - l.add("0"); - l.add("1"); - l.add("2"); - l.add("3"); - l.add("4"); - l.add("5"); - l.add("6"); + List<E> l = makeObject(); + l.add((E) "0"); + l.add((E) "1"); + l.add((E) "2"); + l.add((E) "3"); + l.add((E) "4"); + l.add((E) "5"); + l.add((E) "6"); assertEquals(0, l.indexOf("0")); assertEquals(1, l.indexOf("1")); assertEquals(2, l.indexOf("2")); @@ -188,17 +192,17 @@ assertEquals(4, l.indexOf("4")); assertEquals(5, l.indexOf("5")); assertEquals(6, l.indexOf("6")); - - l.set(1, "0"); + + l.set(1, (E) "0"); assertEquals(0, l.indexOf("0")); - - l.set(3, "3"); + + l.set(3, (E) "3"); assertEquals(3, l.indexOf("3")); - l.set(2, "3"); + l.set(2, (E) "3"); assertEquals(2, l.indexOf("3")); - l.set(1, "3"); + l.set(1, (E) "3"); assertEquals(1, l.indexOf("3")); - l.set(0, "3"); + l.set(0, (E) "3"); assertEquals(0, l.indexOf("3")); } @@ -214,18 +218,18 @@ public void testBug35258() { Object objectToRemove = new Integer(3); - - List treelist = new TreeList(); + + List<Integer> treelist = new TreeList<Integer>(); treelist.add(new Integer(0)); treelist.add(new Integer(1)); treelist.add(new Integer(2)); treelist.add(new Integer(3)); treelist.add(new Integer(4)); - + // this cause inconsistence of ListIterator() treelist.remove(objectToRemove); - - ListIterator li = treelist.listIterator(); + + ListIterator<Integer> li = treelist.listIterator(); assertEquals(new Integer(0), li.next()); assertEquals(new Integer(0), li.previous()); assertEquals(new Integer(0), li.next());