scolebourne 2003/12/03 04:27:37
Modified: collections/src/java/org/apache/commons/collections/list
UnmodifiableList.java
collections/src/java/org/apache/commons/collections/buffer
UnmodifiableBuffer.java
UnmodifiablePriorityQueue.java
collections/src/java/org/apache/commons/collections/map
UnmodifiableSortedMap.java UnmodifiableMap.java
UnmodifiableOrderedMap.java
collections/src/java/org/apache/commons/collections/iterators
UnmodifiableListIterator.java
UnmodifiableMapIterator.java
UnmodifiableOrderedMapIterator.java
UnmodifiableIterator.java
collections/src/java/org/apache/commons/collections/set
UnmodifiableSortedSet.java UnmodifiableSet.java
collections/src/java/org/apache/commons/collections
BeanMap.java
collections/src/java/org/apache/commons/collections/collection
UnmodifiableBoundedCollection.java
UnmodifiableCollection.java
collections/src/java/org/apache/commons/collections/bag
UnmodifiableSortedBag.java UnmodifiableBag.java
Added: collections/src/java/org/apache/commons/collections/map
UnmodifiableEntrySet.java
Log:
Update and make consistent the Unmodifiable decorators
Revision Changes Path
1.3 +4 -25
jakarta-commons/collections/src/java/org/apache/commons/collections/list/UnmodifiableList.java
Index: UnmodifiableList.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/list/UnmodifiableList.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- UnmodifiableList.java 3 Dec 2003 11:19:10 -0000 1.2
+++ UnmodifiableList.java 3 Dec 2003 12:27:36 -0000 1.3
@@ -74,7 +74,7 @@
*
* @author Stephen Colebourne
*/
-public class UnmodifiableList extends AbstractListDecorator implements Unmodifiable
{
+public final class UnmodifiableList extends AbstractListDecorator implements
Unmodifiable {
/**
* Factory method to create an unmodifiable list.
@@ -96,19 +96,10 @@
* @param list the list to decorate, must not be null
* @throws IllegalArgumentException if list is null
*/
- protected UnmodifiableList(List list) {
+ private UnmodifiableList(List list) {
super(list);
}
- /**
- * Gets the list being decorated.
- *
- * @return the list being decorated
- */
- protected List getList() {
- return (List) getCollection();
- }
-
//-----------------------------------------------------------------------
public Iterator iterator() {
return UnmodifiableIterator.decorate(getCollection().iterator());
@@ -139,18 +130,6 @@
}
//-----------------------------------------------------------------------
- public Object get(int index) {
- return getList().get(index);
- }
-
- public int indexOf(Object object) {
- return getList().indexOf(object);
- }
-
- public int lastIndexOf(Object object) {
- return getList().lastIndexOf(object);
- }
-
public ListIterator listIterator() {
return UnmodifiableListIterator.decorate(getList().listIterator());
}
1.3 +4 -4
jakarta-commons/collections/src/java/org/apache/commons/collections/buffer/UnmodifiableBuffer.java
Index: UnmodifiableBuffer.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/buffer/UnmodifiableBuffer.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- UnmodifiableBuffer.java 3 Dec 2003 11:19:10 -0000 1.2
+++ UnmodifiableBuffer.java 3 Dec 2003 12:27:36 -0000 1.3
@@ -72,7 +72,7 @@
*
* @author Stephen Colebourne
*/
-public class UnmodifiableBuffer extends AbstractBufferDecorator implements
Unmodifiable {
+public final class UnmodifiableBuffer extends AbstractBufferDecorator implements
Unmodifiable {
/**
* Factory method to create an unmodifiable buffer.
@@ -94,7 +94,7 @@
* @param buffer the buffer to decorate, must not be null
* @throws IllegalArgumentException if buffer is null
*/
- protected UnmodifiableBuffer(Buffer buffer) {
+ private UnmodifiableBuffer(Buffer buffer) {
super(buffer);
}
1.3 +8 -7
jakarta-commons/collections/src/java/org/apache/commons/collections/buffer/UnmodifiablePriorityQueue.java
Index: UnmodifiablePriorityQueue.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/buffer/UnmodifiablePriorityQueue.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- UnmodifiablePriorityQueue.java 3 Dec 2003 11:19:10 -0000 1.2
+++ UnmodifiablePriorityQueue.java 3 Dec 2003 12:27:36 -0000 1.3
@@ -71,7 +71,7 @@
*
* @author Stephen Colebourne
*/
-public class UnmodifiablePriorityQueue implements PriorityQueue, Unmodifiable {
+public final class UnmodifiablePriorityQueue implements PriorityQueue, Unmodifiable
{
/** The priority queue to decorate */
protected final PriorityQueue priorityQueue;
@@ -86,6 +86,9 @@
if (priorityQueue instanceof Unmodifiable) {
return priorityQueue;
}
+ if (priorityQueue == null) {
+ throw new IllegalArgumentException("PriorityQueue must not be null");
+ }
return new UnmodifiablePriorityQueue(priorityQueue);
}
@@ -95,10 +98,8 @@
*
* @param priorityQueue the priority queue to synchronize
*/
- protected UnmodifiablePriorityQueue(PriorityQueue priorityQueue) {
- if (priorityQueue == null) {
- throw new IllegalArgumentException("PriorityQueue must not be null");
- }
+ private UnmodifiablePriorityQueue(PriorityQueue priorityQueue) {
+ super();
this.priorityQueue = priorityQueue;
}
1.3 +4 -5
jakarta-commons/collections/src/java/org/apache/commons/collections/map/UnmodifiableSortedMap.java
Index: UnmodifiableSortedMap.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/map/UnmodifiableSortedMap.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- UnmodifiableSortedMap.java 20 Nov 2003 22:35:50 -0000 1.2
+++ UnmodifiableSortedMap.java 3 Dec 2003 12:27:36 -0000 1.3
@@ -65,7 +65,6 @@
import org.apache.commons.collections.Unmodifiable;
import org.apache.commons.collections.collection.UnmodifiableCollection;
-import org.apache.commons.collections.map.UnmodifiableMap.UnmodifiableEntrySet;
import org.apache.commons.collections.set.UnmodifiableSet;
/**
@@ -98,7 +97,7 @@
* @param map the map to decorate, must not be null
* @throws IllegalArgumentException if map is null
*/
- protected UnmodifiableSortedMap(SortedMap map) {
+ private UnmodifiableSortedMap(SortedMap map) {
super(map);
}
@@ -121,7 +120,7 @@
public Set entrySet() {
Set set = super.entrySet();
- return new UnmodifiableEntrySet(set);
+ return UnmodifiableEntrySet.decorate(set);
}
public Set keySet() {
1.6 +4 -89
jakarta-commons/collections/src/java/org/apache/commons/collections/map/UnmodifiableMap.java
Index: UnmodifiableMap.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/map/UnmodifiableMap.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- UnmodifiableMap.java 2 Dec 2003 23:51:50 -0000 1.5
+++ UnmodifiableMap.java 3 Dec 2003 12:27:36 -0000 1.6
@@ -57,9 +57,7 @@
*/
package org.apache.commons.collections.map;
-import java.lang.reflect.Array;
import java.util.Collection;
-import java.util.Iterator;
import java.util.Map;
import java.util.Set;
@@ -67,10 +65,8 @@
import org.apache.commons.collections.MapIterator;
import org.apache.commons.collections.Unmodifiable;
import org.apache.commons.collections.collection.UnmodifiableCollection;
-import org.apache.commons.collections.iterators.AbstractIteratorDecorator;
import org.apache.commons.collections.iterators.EntrySetMapIterator;
import org.apache.commons.collections.iterators.UnmodifiableMapIterator;
-import org.apache.commons.collections.pairs.AbstractMapEntryDecorator;
import org.apache.commons.collections.set.UnmodifiableSet;
/**
@@ -103,7 +99,7 @@
* @param map the map to decorate, must not be null
* @throws IllegalArgumentException if map is null
*/
- protected UnmodifiableMap(Map map) {
+ private UnmodifiableMap(Map map) {
super(map);
}
@@ -136,7 +132,7 @@
public Set entrySet() {
Set set = super.entrySet();
- return new UnmodifiableEntrySet(set);
+ return UnmodifiableEntrySet.decorate(set);
}
public Set keySet() {
@@ -147,87 +143,6 @@
public Collection values() {
Collection coll = super.values();
return UnmodifiableCollection.decorate(coll);
- }
-
- //-----------------------------------------------------------------------
- /**
- * Implementation of an entry set that checks (predicates) additions.
- */
- protected static class UnmodifiableEntrySet extends UnmodifiableSet {
-
- protected UnmodifiableEntrySet(Set set) {
- super(set);
- }
-
- public Iterator iterator() {
- return new UnmodifiableEntrySetIterator(collection.iterator());
- }
-
- public Object[] toArray() {
- Object[] array = collection.toArray();
- for (int i = 0; i < array.length; i++) {
- array[i] = new UnmodifiableEntry((Map.Entry) array[i]);
- }
- return array;
- }
-
- public Object[] toArray(Object array[]) {
- Object[] result = array;
- if (array.length > 0) {
- // we must create a new array to handle multi-threaded situations
- // where another thread could access data before we decorate it
- result = (Object[])
Array.newInstance(array.getClass().getComponentType(), 0);
- }
- result = collection.toArray(result);
- for (int i = 0; i < result.length; i++) {
- result[i] = new UnmodifiableEntry((Map.Entry) result[i]);
- }
-
- // check to see if result should be returned straight
- if (result.length > array.length) {
- return result;
- }
-
- // copy back into input array to fulfil the method contract
- System.arraycopy(result, 0, array, 0, result.length);
- if (array.length > result.length) {
- array[result.length] = null;
- }
- return array;
- }
- }
-
- /**
- * Implementation of an entry set iterator.
- */
- protected static class UnmodifiableEntrySetIterator extends
AbstractIteratorDecorator {
-
- protected UnmodifiableEntrySetIterator(Iterator iterator) {
- super(iterator);
- }
-
- public Object next() {
- Map.Entry entry = (Map.Entry) iterator.next();
- return new UnmodifiableEntry(entry);
- }
-
- public void remove() {
- throw new UnsupportedOperationException();
- }
- }
-
- /**
- * Implementation of a map entry that is unmodifiable.
- */
- protected static class UnmodifiableEntry extends AbstractMapEntryDecorator {
-
- protected UnmodifiableEntry(Map.Entry entry) {
- super(entry);
- }
-
- public Object setValue(Object o) {
- throw new UnsupportedOperationException();
- }
}
}
1.4 +4 -5
jakarta-commons/collections/src/java/org/apache/commons/collections/map/UnmodifiableOrderedMap.java
Index: UnmodifiableOrderedMap.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/map/UnmodifiableOrderedMap.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- UnmodifiableOrderedMap.java 1 Dec 2003 22:48:59 -0000 1.3
+++ UnmodifiableOrderedMap.java 3 Dec 2003 12:27:36 -0000 1.4
@@ -68,7 +68,6 @@
import org.apache.commons.collections.collection.UnmodifiableCollection;
import org.apache.commons.collections.iterators.UnmodifiableMapIterator;
import org.apache.commons.collections.iterators.UnmodifiableOrderedMapIterator;
-import org.apache.commons.collections.map.UnmodifiableMap.UnmodifiableEntrySet;
import org.apache.commons.collections.set.UnmodifiableSet;
/**
@@ -101,7 +100,7 @@
* @param map the map to decorate, must not be null
* @throws IllegalArgumentException if map is null
*/
- protected UnmodifiableOrderedMap(OrderedMap map) {
+ private UnmodifiableOrderedMap(OrderedMap map) {
super(map);
}
@@ -134,7 +133,7 @@
public Set entrySet() {
Set set = super.entrySet();
- return new UnmodifiableEntrySet(set);
+ return UnmodifiableEntrySet.decorate(set);
}
public Set keySet() {
1.1
jakarta-commons/collections/src/java/org/apache/commons/collections/map/UnmodifiableEntrySet.java
Index: UnmodifiableEntrySet.java
===================================================================
/*
* $Header:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/map/UnmodifiableEntrySet.java,v
1.1 2003/12/03 12:27:36 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgement may appear in the software itself,
* if and wherever such third-party acknowledgements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.map;
import java.lang.reflect.Array;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.apache.commons.collections.Unmodifiable;
import org.apache.commons.collections.iterators.AbstractIteratorDecorator;
import org.apache.commons.collections.pairs.AbstractMapEntryDecorator;
import org.apache.commons.collections.set.AbstractSetDecorator;
/**
* Decorates a map entry <code>Set</code> to ensure it can't be altered.
*
* @since Commons Collections 3.0
* @version $Revision: 1.1 $ $Date: 2003/12/03 12:27:36 $
*
* @author Stephen Colebourne
*/
public final class UnmodifiableEntrySet extends AbstractSetDecorator implements
Unmodifiable {
/**
* Factory method to create an unmodifiable set of Map Entry objects.
*
* @param set the set to decorate, must not be null
* @throws IllegalArgumentException if set is null
*/
public static Set decorate(Set set) {
if (set instanceof Unmodifiable) {
return set;
}
return new UnmodifiableEntrySet(set);
}
//-----------------------------------------------------------------------
/**
* Constructor that wraps (not copies).
*
* @param set the set to decorate, must not be null
* @throws IllegalArgumentException if set is null
*/
private UnmodifiableEntrySet(Set set) {
super(set);
}
//-----------------------------------------------------------------------
public boolean add(Object object) {
throw new UnsupportedOperationException();
}
public boolean addAll(Collection coll) {
throw new UnsupportedOperationException();
}
public void clear() {
throw new UnsupportedOperationException();
}
public boolean remove(Object object) {
throw new UnsupportedOperationException();
}
public boolean removeAll(Collection coll) {
throw new UnsupportedOperationException();
}
public boolean retainAll(Collection coll) {
throw new UnsupportedOperationException();
}
//-----------------------------------------------------------------------
public Iterator iterator() {
return new UnmodifiableEntrySetIterator(collection.iterator());
}
public Object[] toArray() {
Object[] array = collection.toArray();
for (int i = 0; i < array.length; i++) {
array[i] = new UnmodifiableEntry((Map.Entry) array[i]);
}
return array;
}
public Object[] toArray(Object array[]) {
Object[] result = array;
if (array.length > 0) {
// we must create a new array to handle multi-threaded situations
// where another thread could access data before we decorate it
result = (Object[])
Array.newInstance(array.getClass().getComponentType(), 0);
}
result = collection.toArray(result);
for (int i = 0; i < result.length; i++) {
result[i] = new UnmodifiableEntry((Map.Entry) result[i]);
}
// check to see if result should be returned straight
if (result.length > array.length) {
return result;
}
// copy back into input array to fulfil the method contract
System.arraycopy(result, 0, array, 0, result.length);
if (array.length > result.length) {
array[result.length] = null;
}
return array;
}
//-----------------------------------------------------------------------
/**
* Implementation of an entry set iterator.
*/
final static class UnmodifiableEntrySetIterator extends
AbstractIteratorDecorator {
protected UnmodifiableEntrySetIterator(Iterator iterator) {
super(iterator);
}
public Object next() {
Map.Entry entry = (Map.Entry) iterator.next();
return new UnmodifiableEntry(entry);
}
public void remove() {
throw new UnsupportedOperationException();
}
}
//-----------------------------------------------------------------------
/**
* Implementation of a map entry that is unmodifiable.
*/
final static class UnmodifiableEntry extends AbstractMapEntryDecorator {
protected UnmodifiableEntry(Map.Entry entry) {
super(entry);
}
public Object setValue(Object o) {
throw new UnsupportedOperationException();
}
}
}
1.2 +3 -3
jakarta-commons/collections/src/java/org/apache/commons/collections/iterators/UnmodifiableListIterator.java
Index: UnmodifiableListIterator.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/iterators/UnmodifiableListIterator.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- UnmodifiableListIterator.java 2 Nov 2003 17:26:36 -0000 1.1
+++ UnmodifiableListIterator.java 3 Dec 2003 12:27:37 -0000 1.2
@@ -97,7 +97,7 @@
*
* @param iterator the iterator to decoarate
*/
- protected UnmodifiableListIterator(ListIterator iterator) {
+ private UnmodifiableListIterator(ListIterator iterator) {
super();
this.iterator = iterator;
}
1.4 +3 -3
jakarta-commons/collections/src/java/org/apache/commons/collections/iterators/UnmodifiableMapIterator.java
Index: UnmodifiableMapIterator.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/iterators/UnmodifiableMapIterator.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- UnmodifiableMapIterator.java 1 Dec 2003 22:49:00 -0000 1.3
+++ UnmodifiableMapIterator.java 3 Dec 2003 12:27:37 -0000 1.4
@@ -96,7 +96,7 @@
*
* @param iterator the iterator to decoarate
*/
- protected UnmodifiableMapIterator(MapIterator iterator) {
+ private UnmodifiableMapIterator(MapIterator iterator) {
super();
this.iterator = iterator;
}
1.3 +3 -3
jakarta-commons/collections/src/java/org/apache/commons/collections/iterators/UnmodifiableOrderedMapIterator.java
Index: UnmodifiableOrderedMapIterator.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/iterators/UnmodifiableOrderedMapIterator.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- UnmodifiableOrderedMapIterator.java 1 Dec 2003 22:49:00 -0000 1.2
+++ UnmodifiableOrderedMapIterator.java 3 Dec 2003 12:27:37 -0000 1.3
@@ -96,7 +96,7 @@
*
* @param iterator the iterator to decoarate
*/
- protected UnmodifiableOrderedMapIterator(OrderedMapIterator iterator) {
+ private UnmodifiableOrderedMapIterator(OrderedMapIterator iterator) {
super();
this.iterator = iterator;
}
1.2 +3 -3
jakarta-commons/collections/src/java/org/apache/commons/collections/iterators/UnmodifiableIterator.java
Index: UnmodifiableIterator.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/iterators/UnmodifiableIterator.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- UnmodifiableIterator.java 2 Nov 2003 17:26:36 -0000 1.1
+++ UnmodifiableIterator.java 3 Dec 2003 12:27:37 -0000 1.2
@@ -99,7 +99,7 @@
*
* @param iterator the iterator to decoarate
*/
- protected UnmodifiableIterator(Iterator iterator) {
+ private UnmodifiableIterator(Iterator iterator) {
super();
this.iterator = iterator;
}
1.3 +4 -4
jakarta-commons/collections/src/java/org/apache/commons/collections/set/UnmodifiableSortedSet.java
Index: UnmodifiableSortedSet.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/set/UnmodifiableSortedSet.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- UnmodifiableSortedSet.java 3 Dec 2003 11:19:10 -0000 1.2
+++ UnmodifiableSortedSet.java 3 Dec 2003 12:27:37 -0000 1.3
@@ -72,7 +72,7 @@
*
* @author Stephen Colebourne
*/
-public class UnmodifiableSortedSet extends AbstractSortedSetDecorator implements
Unmodifiable {
+public final class UnmodifiableSortedSet extends AbstractSortedSetDecorator
implements Unmodifiable {
/**
* Factory method to create an unmodifiable set.
@@ -94,7 +94,7 @@
* @param set the set to decorate, must not be null
* @throws IllegalArgumentException if set is null
*/
- protected UnmodifiableSortedSet(SortedSet set) {
+ private UnmodifiableSortedSet(SortedSet set) {
super(set);
}
1.3 +4 -4
jakarta-commons/collections/src/java/org/apache/commons/collections/set/UnmodifiableSet.java
Index: UnmodifiableSet.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/set/UnmodifiableSet.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- UnmodifiableSet.java 3 Dec 2003 11:19:10 -0000 1.2
+++ UnmodifiableSet.java 3 Dec 2003 12:27:37 -0000 1.3
@@ -72,7 +72,7 @@
*
* @author Stephen Colebourne
*/
-public class UnmodifiableSet extends AbstractSetDecorator implements Unmodifiable {
+public final class UnmodifiableSet extends AbstractSetDecorator implements
Unmodifiable {
/**
* Factory method to create an unmodifiable set.
@@ -94,7 +94,7 @@
* @param set the set to decorate, must not be null
* @throws IllegalArgumentException if set is null
*/
- protected UnmodifiableSet(Set set) {
+ private UnmodifiableSet(Set set) {
super(set);
}
1.24 +6 -25
jakarta-commons/collections/src/java/org/apache/commons/collections/BeanMap.java
Index: BeanMap.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/BeanMap.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- BeanMap.java 3 Dec 2003 11:37:44 -0000 1.23
+++ BeanMap.java 3 Dec 2003 12:27:37 -0000 1.24
@@ -456,33 +456,14 @@
* @return the unmodifiable set of mappings
*/
public Set entrySet() {
- return new AbstractSet() {
+ return UnmodifiableSet.decorate(new AbstractSet() {
public Iterator iterator() {
- return new Iterator() {
-
- Iterator methodIter =
- BeanMap.this.readMethods.keySet().iterator();
-
- public boolean hasNext() {
- return methodIter.hasNext();
- }
-
- public Object next() {
- Object key = (Object)methodIter.next();
- return new MyMapEntry( BeanMap.this, key, get(key) );
- }
-
- public void remove() {
- throw new UnsupportedOperationException
- ("remove() not supported from BeanMap.entrySet()");
- }
- };
+ return entryIterator();
}
-
public int size() {
return BeanMap.this.readMethods.size();
}
- };
+ });
}
/**
@@ -559,7 +540,7 @@
}
public Object next() {
Object key = iter.next();
- Object value = get( (String) key );
+ Object value = get(key);
return new MyMapEntry( BeanMap.this, key, value );
}
public void remove() {
1.4 +35 -4
jakarta-commons/collections/src/java/org/apache/commons/collections/collection/UnmodifiableBoundedCollection.java
Index: UnmodifiableBoundedCollection.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/collection/UnmodifiableBoundedCollection.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- UnmodifiableBoundedCollection.java 29 Nov 2003 18:14:20 -0000 1.3
+++ UnmodifiableBoundedCollection.java 3 Dec 2003 12:27:37 -0000 1.4
@@ -58,8 +58,10 @@
package org.apache.commons.collections.collection;
import java.util.Collection;
+import java.util.Iterator;
import org.apache.commons.collections.BoundedCollection;
+import org.apache.commons.collections.iterators.UnmodifiableIterator;
/**
* <code>UnmodifiableBoundedCollection</code> decorates another
<code>BoundedCollection</code>
@@ -75,7 +77,7 @@
*
* @author Stephen Colebourne
*/
-public class UnmodifiableBoundedCollection extends UnmodifiableCollection
implements BoundedCollection {
+public final class UnmodifiableBoundedCollection extends
AbstractCollectionDecorator implements BoundedCollection {
/**
* Factory method to create an unmodifiable bounded collection.
@@ -126,8 +128,37 @@
* @param coll the collection to decorate, must not be null
* @throws IllegalArgumentException if coll is null
*/
- protected UnmodifiableBoundedCollection(BoundedCollection coll) {
+ private UnmodifiableBoundedCollection(BoundedCollection coll) {
super(coll);
+ }
+
+ //-----------------------------------------------------------------------
+ public Iterator iterator() {
+ return UnmodifiableIterator.decorate(getCollection().iterator());
+ }
+
+ public boolean add(Object object) {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean addAll(Collection coll) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void clear() {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean remove(Object object) {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean removeAll(Collection coll) {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean retainAll(Collection coll) {
+ throw new UnsupportedOperationException();
}
//-----------------------------------------------------------------------
1.3 +4 -4
jakarta-commons/collections/src/java/org/apache/commons/collections/collection/UnmodifiableCollection.java
Index: UnmodifiableCollection.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/collection/UnmodifiableCollection.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- UnmodifiableCollection.java 3 Dec 2003 11:19:10 -0000 1.2
+++ UnmodifiableCollection.java 3 Dec 2003 12:27:37 -0000 1.3
@@ -71,7 +71,7 @@
*
* @author Stephen Colebourne
*/
-public class UnmodifiableCollection extends AbstractCollectionDecorator implements
Unmodifiable {
+public final class UnmodifiableCollection extends AbstractCollectionDecorator
implements Unmodifiable {
/**
* Factory method to create an unmodifiable collection.
@@ -93,7 +93,7 @@
* @param coll the collection to decorate, must not be null
* @throws IllegalArgumentException if collection is null
*/
- protected UnmodifiableCollection(Collection coll) {
+ private UnmodifiableCollection(Collection coll) {
super(coll);
}
1.3 +4 -4
jakarta-commons/collections/src/java/org/apache/commons/collections/bag/UnmodifiableSortedBag.java
Index: UnmodifiableSortedBag.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/bag/UnmodifiableSortedBag.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- UnmodifiableSortedBag.java 3 Dec 2003 11:19:10 -0000 1.2
+++ UnmodifiableSortedBag.java 3 Dec 2003 12:27:37 -0000 1.3
@@ -72,7 +72,7 @@
*
* @author Stephen Colebourne
*/
-public class UnmodifiableSortedBag extends AbstractSortedBagDecorator implements
Unmodifiable {
+public final class UnmodifiableSortedBag extends AbstractSortedBagDecorator
implements Unmodifiable {
/**
* Factory method to create an unmodifiable bag.
@@ -94,7 +94,7 @@
* @param bag the bag to decorate, must not be null
* @throws IllegalArgumentException if bag is null
*/
- protected UnmodifiableSortedBag(SortedBag bag) {
+ private UnmodifiableSortedBag(SortedBag bag) {
super(bag);
}
1.3 +4 -4
jakarta-commons/collections/src/java/org/apache/commons/collections/bag/UnmodifiableBag.java
Index: UnmodifiableBag.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/bag/UnmodifiableBag.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- UnmodifiableBag.java 3 Dec 2003 11:19:10 -0000 1.2
+++ UnmodifiableBag.java 3 Dec 2003 12:27:37 -0000 1.3
@@ -74,7 +74,7 @@
*
* @author Stephen Colebourne
*/
-public class UnmodifiableBag extends AbstractBagDecorator implements Unmodifiable {
+public final class UnmodifiableBag extends AbstractBagDecorator implements
Unmodifiable {
/**
* Factory method to create an unmodifiable bag.
@@ -96,7 +96,7 @@
* @param bag the bag to decorate, must not be null
* @throws IllegalArgumentException if bag is null
*/
- protected UnmodifiableBag(Bag bag) {
+ private UnmodifiableBag(Bag bag) {
super(bag);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]