com.phoenixst.collections
Class ReapableCollection
java.lang.Object
com.phoenixst.collections.ReapableCollection
- All Implemented Interfaces:
- Reapable, Iterable, Collection
public class ReapableCollection
- extends Object
- implements Collection, Reapable
A reapable Collection
. At any time, elements of an
instance of this class may be removed if there are no longer any
references to them outside of the instance. In particular, many
methods like size()
and isEmpty()
may not give
accurate answers, and that information is immediately out of date.
Instances of this class are synchronized where necessary, but the
user is required to synchronize externally during
any iteration.
This Collection
does not permit null
elements, nor will it allow itself to be added.
Most of the methods in this class use reference equality rather
than .equals()
, given that the intent of this class
is to track actual Object instances. However, the methods removeAll(Collection)
and retainAll(Collection)
use the
contains()
method of the argument
Collection.
- Since:
- 1.0
- Version:
- $Revision: 1.14 $
- Author:
- Ray A. Conner
Method Summary |
boolean |
add(Object object)
Adds the specified element to this collection, wrapping the
element with a Reference created by the Reaper used to construct this collection. |
boolean |
addAll(Collection collection)
Adds all of the elements in the specified collection to this
collection, wrapping each element with a
Reference created by the Reaper used to
construct this collection. |
void |
clear()
|
boolean |
contains(Object object)
Returns true if this collection contains a Reference for the
specified object. |
boolean |
containsAll(Collection collection)
Returns true if this collection contains
References for all of the elements in the specified
collection. |
boolean |
isEmpty()
Returns true if this collection contains no
elements; a false return value doesn't signify
anything meaningful. |
Iterator |
iterator()
Returns an Iterator over the elements in this
collection, which are the referents of uncleared References. |
void |
reap()
Informs this Reapable that it has at least one
reference which has been reclaimed. |
boolean |
remove(Object object)
If this collection contains a Reference for the specified
object, the first such Reference found is cleared and
true is returned. |
boolean |
removeAll(Collection collection)
Removes all this collection's elements that are also contained
in the specified collection. |
boolean |
retainAll(Collection collection)
Retains only this collection's elements that are also
contained in the specified collection. |
int |
size()
Returns at most the number of uncleared References currently
in this collection. |
Object[] |
toArray()
Returns an array containing all of the elements in this
collection. |
Object[] |
toArray(Object[] array)
Returns an array containing all of the elements in this
collection. |
String |
toString()
|
ReapableCollection
public ReapableCollection()
- Creates a new
ReapableCollection
using the
default Reaper
.
ReapableCollection
public ReapableCollection(Reaper reaper)
- Creates a new
ReapableCollection
with the
specified Reaper
. The Reaper
must not
create PhantomReferences
.
size
public int size()
- Returns at most the number of uncleared References currently
in this collection.
- Specified by:
size
in interface Collection
isEmpty
public boolean isEmpty()
- Returns
true
if this collection contains no
elements; a false
return value doesn't signify
anything meaningful.
- Specified by:
isEmpty
in interface Collection
add
public boolean add(Object object)
- Adds the specified element to this collection, wrapping the
element with a
Reference
created by the Reaper
used to construct this collection. This
Collection
does not permit null
elements, nor will it allow itself to be added.
- Specified by:
add
in interface Collection
remove
public boolean remove(Object object)
- If this collection contains a Reference for the specified
object, the first such Reference found is cleared and
true
is returned.
- Specified by:
remove
in interface Collection
contains
public boolean contains(Object object)
- Returns true if this collection contains a Reference for the
specified object.
- Specified by:
contains
in interface Collection
iterator
public Iterator iterator()
- Returns an
Iterator
over the elements in this
collection, which are the referents of uncleared References.
The user must externally synchronize the
Iterator
returned by this method!
- Specified by:
iterator
in interface Iterable
- Specified by:
iterator
in interface Collection
clear
public void clear()
- Specified by:
clear
in interface Collection
addAll
public boolean addAll(Collection collection)
- Adds all of the elements in the specified collection to this
collection, wrapping each element with a
Reference
created by the Reaper
used to
construct this collection. This Collection
does
not permit null
elements, nor will it allow
itself to be added. If the argument collection is this
collection, nothing happens and false
is
returned.
- Specified by:
addAll
in interface Collection
removeAll
public boolean removeAll(Collection collection)
- Removes all this collection's elements that are also contained
in the specified collection. Unlike most other methods in
this class, this method uses the definition of element
equality defined by the argument collection. This
implementation is O(n*m), where n is the size of this
collection and m is the cost of executing the
contains()
method of the argument collection.
- Specified by:
removeAll
in interface Collection
retainAll
public boolean retainAll(Collection collection)
- Retains only this collection's elements that are also
contained in the specified collection. Unlike most other
methods in this class, this method uses the definition of
element equality defined by the argument collection. This
implementation is O(n*m), where n is the size of this
collection and m is the cost of executing the
contains()
method of the argument collection.
- Specified by:
retainAll
in interface Collection
containsAll
public boolean containsAll(Collection collection)
- Returns
true
if this collection contains
References for all of the elements in the specified
collection. This implementation is O(n*m), where n
is the size of this collection and m is the cost of
iterating over the argument collection.
- Specified by:
containsAll
in interface Collection
toArray
public Object[] toArray()
- Returns an array containing all of the elements in this
collection. Note that this creates strong references to all
elements, and will therefore prevent them from being garbage
collected.
- Specified by:
toArray
in interface Collection
toArray
public Object[] toArray(Object[] array)
- Returns an array containing all of the elements in this
collection. Note that this creates strong references to all
elements, and will therefore prevent them from being garbage
collected.
- Specified by:
toArray
in interface Collection
toString
public String toString()
- Overrides:
toString
in class Object
reap
public void reap()
- Description copied from interface:
Reapable
- Informs this
Reapable
that it has at least one
reference which has been reclaimed.
- Specified by:
reap
in interface Reapable
See the Plexus project home, hosted by SourceForge.
Copyright ? 1994-2006, by Phoenix Software Technologists, Inc. and others. All Rights Reserved. Use is subject to license terms.