Merged gcj-eclipse branch to trunk.
From-SVN: r120621
This commit is contained in:
parent
c648dedbde
commit
97b8365caf
17478 changed files with 606493 additions and 100744 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue