Author: bayard Date: Tue Sep 15 05:54:53 2009 New Revision: 815041 URL: http://svn.apache.org/viewvc?rev=815041&view=rev Log: Merging from -r468106:814127 of collections_jdk5_branch - namely where this code was generified; mostly in r738956.
Also see the following revisions: ------------------------------------------------------------------------ r471575 | scolebourne | 2006-11-05 15:58:08 -0800 (Sun, 05 Nov 2006) | 1 line Generify and remove AbstractSerializableCollectionDecorator ------------------------------------------------------------------------ r471202 | scolebourne | 2006-11-04 06:21:44 -0800 (Sat, 04 Nov 2006) | 1 line Remove getCollection() - use covariant decorated() ------------------------------------------------------------------------ Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/collection/UnmodifiableCollection.java Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/collection/UnmodifiableCollection.java URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/collection/UnmodifiableCollection.java?rev=815041&r1=815040&r2=815041&view=diff ============================================================================== --- commons/proper/collections/trunk/src/java/org/apache/commons/collections/collection/UnmodifiableCollection.java (original) +++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/collection/UnmodifiableCollection.java Tue Sep 15 05:54:53 2009 @@ -29,13 +29,14 @@ * <p> * Attempts to modify it will result in an UnsupportedOperationException. * + * @param <E> the type of the elements in the collection * @since Commons Collections 3.0 * @version $Revision$ $Date$ * * @author Stephen Colebourne */ -public final class UnmodifiableCollection - extends AbstractSerializableCollectionDecorator +public final class UnmodifiableCollection<E> + extends AbstractCollectionDecorator<E> implements Unmodifiable { /** Serialization version */ @@ -46,17 +47,18 @@ * <p> * If the collection passed in is already unmodifiable, it is returned. * + * @param <T> the type of the elements in the collection * @param coll the collection to decorate, must not be null * @return an unmodifiable collection * @throws IllegalArgumentException if collection is null */ - public static Collection decorate(Collection coll) { + public static <T> Collection<T> decorate(Collection<T> coll) { if (coll instanceof Unmodifiable) { return coll; } - return new UnmodifiableCollection(coll); + return new UnmodifiableCollection<T>(coll); } - + //----------------------------------------------------------------------- /** * Constructor that wraps (not copies). @@ -64,20 +66,20 @@ * @param coll the collection to decorate, must not be null * @throws IllegalArgumentException if collection is null */ - private UnmodifiableCollection(Collection coll) { + private UnmodifiableCollection(Collection<E> coll) { super(coll); } //----------------------------------------------------------------------- - public Iterator iterator() { - return UnmodifiableIterator.decorate(getCollection().iterator()); + public Iterator<E> iterator() { + return UnmodifiableIterator.decorate(decorated().iterator()); } - public boolean add(Object object) { + public boolean add(E object) { throw new UnsupportedOperationException(); } - public boolean addAll(Collection coll) { + public boolean addAll(Collection<? extends E> coll) { throw new UnsupportedOperationException(); } @@ -89,11 +91,11 @@ throw new UnsupportedOperationException(); } - public boolean removeAll(Collection coll) { + public boolean removeAll(Collection<?> coll) { throw new UnsupportedOperationException(); } - public boolean retainAll(Collection coll) { + public boolean retainAll(Collection<?> coll) { throw new UnsupportedOperationException(); }