git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@131718 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Stephen Colebourne 2004-05-15 12:27:04 +00:00
parent 7cad661cf1
commit b13cb3b3b4
11 changed files with 65 additions and 14 deletions

View File

@ -37,7 +37,7 @@ import org.apache.commons.collections.set.UnmodifiableSet;
* the number of occurrences of that element in the bag.
*
* @since Commons Collections 3.0 (previously DefaultMapBag v2.0)
* @version $Revision: 1.14 $ $Date: 2004/02/18 00:56:25 $
* @version $Revision: 1.15 $ $Date: 2004/05/15 12:27:04 $
*
* @author Chuck Burdick
* @author Michael A. Smith
@ -76,8 +76,9 @@ public abstract class AbstractMapBag implements Bag {
/**
* Utility method for implementations to access the map that backs
* this bag. Not intended for interactive use outside of
* subclasses.
* this bag. Not intended for interactive use outside of subclasses.
*
* @return the map being used by the Bag
*/
protected Map getMap() {
return map;
@ -171,6 +172,9 @@ public abstract class AbstractMapBag implements Bag {
return new BagIterator(this);
}
/**
* Inner class iterator for the Bag.
*/
static class BagIterator implements Iterator {
private AbstractMapBag parent;
private Iterator entryIterator;
@ -179,6 +183,11 @@ public abstract class AbstractMapBag implements Bag {
private final int mods;
private boolean canRemove;
/**
* Constructor.
*
* @param parent the parent bag
*/
public BagIterator(AbstractMapBag parent) {
this.parent = parent;
this.entryIterator = parent.map.entrySet().iterator();
@ -391,8 +400,13 @@ public abstract class AbstractMapBag implements Bag {
* Mutable integer class for storing the data.
*/
protected static class MutableInteger {
/** The value of this mutable. */
protected int value;
/**
* Constructor.
* @param value the initial value
*/
MutableInteger(int value) {
this.value = value;
}
@ -469,6 +483,8 @@ public abstract class AbstractMapBag implements Bag {
//-----------------------------------------------------------------------
/**
* Write the map out using a custom routine.
* @param out the output stream
* @throws IOException
*/
protected void doWriteObject(ObjectOutputStream out) throws IOException {
out.writeInt(map.size());
@ -481,6 +497,10 @@ public abstract class AbstractMapBag implements Bag {
/**
* Read the map in using a custom routine.
* @param map the map to use
* @param in the input stream
* @throws IOException
* @throws ClassNotFoundException
*/
protected void doReadObject(Map map, ObjectInputStream in) throws IOException, ClassNotFoundException {
this.map = map;
@ -514,7 +534,7 @@ public abstract class AbstractMapBag implements Bag {
return false;
}
for (Iterator it = map.keySet().iterator(); it.hasNext();) {
Object element = (Object) it.next();
Object element = it.next();
if (other.getCount(element) != getCount(element)) {
return false;
}

View File

@ -29,7 +29,7 @@ import org.apache.commons.collections.collection.PredicatedCollection;
* is thrown.
*
* @since Commons Collections 3.0
* @version $Revision: 1.4 $ $Date: 2004/02/18 00:56:25 $
* @version $Revision: 1.5 $ $Date: 2004/05/15 12:27:04 $
*
* @author Stephen Colebourne
* @author Paul Jack
@ -45,6 +45,7 @@ public class PredicatedBag
*
* @param bag the bag to decorate, must not be null
* @param predicate the predicate to use for validation, must not be null
* @return a new predicated Bag
* @throws IllegalArgumentException if bag or predicate is null
* @throws IllegalArgumentException if the bag contains invalid elements
*/

View File

@ -28,7 +28,7 @@ import org.apache.commons.collections.SortedBag;
* is thrown.
*
* @since Commons Collections 3.0
* @version $Revision: 1.4 $ $Date: 2004/02/18 00:56:25 $
* @version $Revision: 1.5 $ $Date: 2004/05/15 12:27:04 $
*
* @author Stephen Colebourne
* @author Paul Jack
@ -44,6 +44,7 @@ public class PredicatedSortedBag
*
* @param bag the bag to decorate, must not be null
* @param predicate the predicate to use for validation, must not be null
* @return a new predicated SortedBag
* @throws IllegalArgumentException if bag or predicate is null
* @throws IllegalArgumentException if the bag contains invalid elements
*/

View File

@ -29,7 +29,7 @@ import org.apache.commons.collections.set.SynchronizedSet;
* Iterators must be separately synchronized around the loop.
*
* @since Commons Collections 3.0
* @version $Revision: 1.5 $ $Date: 2004/02/18 00:56:25 $
* @version $Revision: 1.6 $ $Date: 2004/05/15 12:27:04 $
*
* @author Stephen Colebourne
*/
@ -40,6 +40,7 @@ public class SynchronizedBag
* Factory method to create a synchronized bag.
*
* @param bag the bag to decorate, must not be null
* @return a new synchronized Bag
* @throws IllegalArgumentException if bag is null
*/
public static Bag decorate(Bag bag) {
@ -68,6 +69,11 @@ public class SynchronizedBag
super(bag, lock);
}
/**
* Gets the bag being decorated.
*
* @return the decorated bag
*/
protected Bag getBag() {
return (Bag) collection;
}
@ -103,6 +109,11 @@ public class SynchronizedBag
* Synchronized Set for the Bag class.
*/
class SynchronizedBagSet extends SynchronizedSet {
/**
* Constructor.
* @param set the set to decorate
* @param lock the lock to use, shared with the bag
*/
SynchronizedBagSet(Set set, Object lock) {
super(set, lock);
}

View File

@ -28,7 +28,7 @@ import org.apache.commons.collections.SortedBag;
* Iterators must be separately synchronized around the loop.
*
* @since Commons Collections 3.0
* @version $Revision: 1.5 $ $Date: 2004/02/18 00:56:25 $
* @version $Revision: 1.6 $ $Date: 2004/05/15 12:27:04 $
*
* @author Stephen Colebourne
*/
@ -39,6 +39,7 @@ public class SynchronizedSortedBag
* Factory method to create a synchronized sorted bag.
*
* @param bag the bag to decorate, must not be null
* @return a new synchronized SortedBag
* @throws IllegalArgumentException if bag is null
*/
public static SortedBag decorate(SortedBag bag) {
@ -67,6 +68,11 @@ public class SynchronizedSortedBag
super(bag, lock);
}
/**
* Gets the bag being decorated.
*
* @return the decorated bag
*/
protected SortedBag getSortedBag() {
return (SortedBag) collection;
}

View File

@ -31,7 +31,7 @@ import org.apache.commons.collections.set.TransformedSet;
* use the Integer form to remove objects.
*
* @since Commons Collections 3.0
* @version $Revision: 1.4 $ $Date: 2004/02/18 00:56:25 $
* @version $Revision: 1.5 $ $Date: 2004/05/15 12:27:04 $
*
* @author Stephen Colebourne
*/
@ -46,6 +46,7 @@ public class TransformedBag
*
* @param bag the bag to decorate, must not be null
* @param transformer the transformer to use for conversion, must not be null
* @return a new transformed Bag
* @throws IllegalArgumentException if bag or transformer is null
*/
public static Bag decorate(Bag bag, Transformer transformer) {

View File

@ -29,7 +29,7 @@ import org.apache.commons.collections.Transformer;
* use the Integer form to remove objects.
*
* @since Commons Collections 3.0
* @version $Revision: 1.4 $ $Date: 2004/02/18 00:56:25 $
* @version $Revision: 1.5 $ $Date: 2004/05/15 12:27:04 $
*
* @author Stephen Colebourne
*/
@ -44,6 +44,7 @@ public class TransformedSortedBag
*
* @param bag the bag to decorate, must not be null
* @param transformer the transformer to use for conversion, must not be null
* @return a new transformed SortedBag
* @throws IllegalArgumentException if bag or transformer is null
*/
public static SortedBag decorate(SortedBag bag, Transformer transformer) {

View File

@ -27,7 +27,7 @@ import org.apache.commons.collections.functors.InstanceofPredicate;
* collection, an IllegalArgumentException is thrown.
*
* @since Commons Collections 3.0
* @version $Revision: 1.5 $ $Date: 2004/05/07 23:28:38 $
* @version $Revision: 1.6 $ $Date: 2004/05/15 12:27:04 $
*
* @author Stephen Colebourne
* @author Matthew Hawthorne
@ -42,6 +42,7 @@ public class TypedBag {
*
* @param bag the bag to decorate, must not be null
* @param type the type to allow into the bag, must not be null
* @return a new typed Bag
* @throws IllegalArgumentException if bag or type is null
* @throws IllegalArgumentException if the bag contains invalid elements
*/
@ -53,6 +54,7 @@ public class TypedBag {
* Restrictive constructor.
*/
protected TypedBag() {
super();
}
}

View File

@ -27,7 +27,7 @@ import org.apache.commons.collections.functors.InstanceofPredicate;
* collection, an IllegalArgumentException is thrown.
*
* @since Commons Collections 3.0
* @version $Revision: 1.5 $ $Date: 2004/05/07 23:28:38 $
* @version $Revision: 1.6 $ $Date: 2004/05/15 12:27:04 $
*
* @author Stephen Colebourne
* @author Matthew Hawthorne
@ -42,6 +42,7 @@ public class TypedSortedBag {
*
* @param bag the bag to decorate, must not be null
* @param type the type to allow into the bag, must not be null
* @return a new transformed SortedBag
* @throws IllegalArgumentException if bag or type is null
* @throws IllegalArgumentException if the bag contains invalid elements
*/
@ -53,6 +54,7 @@ public class TypedSortedBag {
* Restrictive constructor.
*/
protected TypedSortedBag() {
super();
}
}

View File

@ -28,7 +28,7 @@ import org.apache.commons.collections.set.UnmodifiableSet;
* Decorates another <code>Bag</code> to ensure it can't be altered.
*
* @since Commons Collections 3.0
* @version $Revision: 1.6 $ $Date: 2004/02/18 00:56:25 $
* @version $Revision: 1.7 $ $Date: 2004/05/15 12:27:04 $
*
* @author Stephen Colebourne
*/
@ -37,8 +37,11 @@ public final class UnmodifiableBag
/**
* Factory method to create an unmodifiable bag.
* <p>
* If the bag passed in is already unmodifiable, it is returned.
*
* @param bag the bag to decorate, must not be null
* @return an unmodifiable Bag
* @throws IllegalArgumentException if bag is null
*/
public static Bag decorate(Bag bag) {

View File

@ -28,7 +28,7 @@ import org.apache.commons.collections.set.UnmodifiableSet;
* Decorates another <code>SortedBag</code> to ensure it can't be altered.
*
* @since Commons Collections 3.0
* @version $Revision: 1.7 $ $Date: 2004/05/03 15:13:05 $
* @version $Revision: 1.8 $ $Date: 2004/05/15 12:27:04 $
*
* @author Stephen Colebourne
*/
@ -37,8 +37,11 @@ public final class UnmodifiableSortedBag
/**
* Factory method to create an unmodifiable bag.
* <p>
* If the bag passed in is already unmodifiable, it is returned.
*
* @param bag the bag to decorate, must not be null
* @return an unmodifiable SortedBag
* @throws IllegalArgumentException if bag is null
*/
public static SortedBag decorate(SortedBag bag) {