diff options
Diffstat (limited to 'libjava/classpath/java/util/AbstractCollection.java')
-rw-r--r-- | libjava/classpath/java/util/AbstractCollection.java | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/libjava/classpath/java/util/AbstractCollection.java b/libjava/classpath/java/util/AbstractCollection.java index 3ae98e07311..ef74342237a 100644 --- a/libjava/classpath/java/util/AbstractCollection.java +++ b/libjava/classpath/java/util/AbstractCollection.java @@ -1,5 +1,5 @@ /* AbstractCollection.java -- Abstract implementation of most of Collection - Copyright (C) 1998, 2000, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2000, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -62,13 +62,16 @@ import java.lang.reflect.Array; * @author Original author unknown * @author Bryce McKinlay * @author Eric Blake (ebb9@email.byu.edu) + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @see Collection * @see AbstractSet * @see AbstractList * @since 1.2 * @status updated to 1.4 */ -public abstract class AbstractCollection implements Collection +public abstract class AbstractCollection<E> + implements Collection<E>, Iterable<E> { /** * The main constructor, for use by subclasses. @@ -84,7 +87,7 @@ public abstract class AbstractCollection implements Collection * * @return an iterator */ - public abstract Iterator iterator(); + public abstract Iterator<E> iterator(); /** * Return the number of elements in this collection. If there are more than @@ -110,7 +113,7 @@ public abstract class AbstractCollection implements Collection * @throws IllegalArgumentException if some aspect of the object prevents * it from being added */ - public boolean add(Object o) + public boolean add(E o) { throw new UnsupportedOperationException(); } @@ -138,9 +141,9 @@ public abstract class AbstractCollection implements Collection * collection doesn't allow null values. * @see #add(Object) */ - public boolean addAll(Collection c) + public boolean addAll(Collection<? extends E> c) { - Iterator itr = c.iterator(); + Iterator<? extends E> itr = c.iterator(); boolean modified = false; int pos = c.size(); while (--pos >= 0) @@ -162,7 +165,7 @@ public abstract class AbstractCollection implements Collection */ public void clear() { - Iterator itr = iterator(); + Iterator<E> itr = iterator(); int pos = size(); while (--pos >= 0) { @@ -184,7 +187,7 @@ public abstract class AbstractCollection implements Collection */ public boolean contains(Object o) { - Iterator itr = iterator(); + Iterator<E> itr = iterator(); int pos = size(); while (--pos >= 0) if (equals(o, itr.next())) @@ -204,9 +207,9 @@ public abstract class AbstractCollection implements Collection * @throws NullPointerException if the given collection is null * @see #contains(Object) */ - public boolean containsAll(Collection c) + public boolean containsAll(Collection<?> c) { - Iterator itr = c.iterator(); + Iterator<?> itr = c.iterator(); int pos = c.size(); while (--pos >= 0) if (!contains(itr.next())) @@ -247,7 +250,7 @@ public abstract class AbstractCollection implements Collection */ public boolean remove(Object o) { - Iterator itr = iterator(); + Iterator<E> itr = iterator(); int pos = size(); while (--pos >= 0) if (equals(o, itr.next())) @@ -273,7 +276,7 @@ public abstract class AbstractCollection implements Collection * @throws NullPointerException if the collection, c, is null. * @see Iterator#remove() */ - public boolean removeAll(Collection c) + public boolean removeAll(Collection<?> c) { return removeAllInternal(c); } @@ -295,9 +298,9 @@ public abstract class AbstractCollection implements Collection * @see Iterator#remove() */ // Package visible for use throughout java.util. - boolean removeAllInternal(Collection c) + boolean removeAllInternal(Collection<?> c) { - Iterator itr = iterator(); + Iterator<E> itr = iterator(); boolean modified = false; int pos = size(); while (--pos >= 0) @@ -324,7 +327,7 @@ public abstract class AbstractCollection implements Collection * @throws NullPointerException if the collection, c, is null. * @see Iterator#remove() */ - public boolean retainAll(Collection c) + public boolean retainAll(Collection<?> c) { return retainAllInternal(c); } @@ -347,9 +350,9 @@ public abstract class AbstractCollection implements Collection * @see Iterator#remove() */ // Package visible for use throughout java.util. - boolean retainAllInternal(Collection c) + boolean retainAllInternal(Collection<?> c) { - Iterator itr = iterator(); + Iterator<E> itr = iterator(); boolean modified = false; int pos = size(); while (--pos >= 0) @@ -372,7 +375,7 @@ public abstract class AbstractCollection implements Collection */ public Object[] toArray() { - Iterator itr = iterator(); + Iterator<E> itr = iterator(); int size = size(); Object[] a = new Object[size]; for (int pos = 0; pos < size; pos++) @@ -402,19 +405,18 @@ public abstract class AbstractCollection implements Collection * @throws ArrayStoreException if the type of the array precludes holding * one of the elements of the Collection */ - public Object[] toArray(Object[] a) + public <T> T[] toArray(T[] a) { int size = size(); if (a.length < size) - a = (Object[]) Array.newInstance(a.getClass().getComponentType(), + a = (T[]) Array.newInstance(a.getClass().getComponentType(), size); else if (a.length > size) a[size] = null; - Iterator itr = iterator(); + Iterator<E> itr = iterator(); for (int pos = 0; pos < size; pos++) - a[pos] = itr.next(); - + a[pos] = (T) (itr.next()); return a; } |