Collection to provide additional behaviour.
Each method call made on this Collection is forwarded to the
decorated Collection. This class is used as a framework on which
to build to extensions such as synchronized and unmodifiable behaviour. The
main advantage of decoration is that one decorator can wrap any implementation
of Collection, whereas sub-classing requires a new class to be
written for each implementation.
This implementation does not perform any special processing with
iterator(). Instead it simply returns the value from the
wrapped collection. This may be undesirable, for example if you are trying
to write an unmodifiable implementation it might provide a loophole.
This implementation does not forward the hashCode and equals methods through
to the backing object, but relies on Object's implementation. This is necessary
to preserve the symmetry of equals. Custom definitions of equality are usually
based on an interface, such as Set or List, so that the implementation of equals
can cast the object being tested for equality to the custom interface.
AbstractCollectionDecorator does not implement such custom interfaces directly;
they are implemented only in subclasses. Therefore, forwarding equals would break
symmetry, as the forwarding object might consider itself equal to the object being
tested, but the reverse could not be true. This behavior is consistent with the
JDK's collection wrappers, such as java..
Use an interface-specific subclass of AbstractCollectionDecorator, such as
AbstractListDecorator, to preserve equality behavior, or override equals directly.
| Modifier and Type | Field and Description |
|---|---|
| private Collection | collection
The collection being decorated |
| private static final long | serialVersionUID
Serialization version |
| Access | Constructor and Description |
|---|---|
| protected | |
| protected | AbstractCollectionDecorator(final Collection<E>
the collection to decorate, must not be null coll)Constructor that wraps (not copies). |
| Modifier and Type | Method and Description |
|---|---|
| public boolean | add(final E
element whose presence in this collection is to be ensured object)Implements java. |
| public boolean | addAll(final Collection<? extends E>
collection containing elements to be added to this collection coll)Implements java. |
| public void | clear()
Implements java. |
| public boolean | contains(final Object
element whose presence in this collection is to be tested object)Implements java. true if this collection contains the specified element.
|
| public boolean | containsAll(final Collection<?>
collection to be checked for containment in this collection coll)Implements java. true if this collection contains all of the elements
in the specified collection.
|
| protected Collection | |
| public boolean | isEmpty()
Implements java. true if this collection contains no elements.
|
| public Iterator | iterator()
Implements java. |
| public boolean | remove(final Object
element to be removed from this collection, if present object)Implements java. |
| public boolean | removeAll(final Collection<?>
collection containing elements to be removed from this collection coll)Implements java. |
| public boolean | removeIf(final Predicate<? super E>
a predicate which returns filter)true for elements to be
removedOverrides default java. |
| public boolean | retainAll(final Collection<?>
collection containing elements to be retained in this collection coll)Implements java. |
| protected void | |
| public int | |
| public Object[] | toArray()
Implements java. |
| public <T> T[] | toArray(final T[]
the array into which the elements of this collection are to be
stored, if it is big enough; otherwise, a new array of the same
runtime type is allocated for this purpose. object)Implements java. |
| public String |
| collection | back to summary |
|---|---|
| private Collection<E> collection The collection being decorated | |
| serialVersionUID | back to summary |
|---|---|
| private static final long serialVersionUID Serialization version | |
| AbstractCollectionDecorator | back to summary |
|---|---|
| protected AbstractCollectionDecorator() Constructor only used in deserialization, do not use otherwise.
| |
| AbstractCollectionDecorator | back to summary |
|---|---|
| protected AbstractCollectionDecorator(final Collection<E> coll) Constructor that wraps (not copies).
| |
| add | back to summary |
|---|---|
| public boolean add(final E object) Implements java. Doc from java. Ensures that this collection contains the specified element (optional
operation). Returns
Collections that support this operation may place limitations on what
elements may be added to this collection. In particular, some
collections will refuse to add
If a collection refuses to add a particular element for any reason
other than that it already contains the element, it must throw
an exception (rather than returning
| |
| addAll | back to summary |
|---|---|
| public boolean addAll(final Collection<? extends E> coll) Implements java. Doc from java. Adds all of the elements in the specified collection to this collection (optional operation). The behavior of this operation is undefined if the specified collection is modified while the operation is in progress. (This implies that the behavior of this call is undefined if the specified collection is this collection, and this collection is nonempty.) If the specified collection has a defined encounter order, processing of its elements generally occurs in that order.
| |
| clear | back to summary |
|---|---|
| public void clear() Implements java. Doc from java. Removes all of the elements from this collection (optional operation). The collection will be empty after this method returns.
| |
| contains | back to summary |
|---|---|
| public boolean contains(final Object object) Implements java. Doc from java. Returns | |
| containsAll | back to summary |
|---|---|
| public boolean containsAll(final Collection<?> coll) Implements java. Doc from java. Returns
| |
| decorated | back to summary |
|---|---|
| protected Collection Gets the collection being decorated. All access to the decorated collection goes via this method.
| |
| isEmpty | back to summary |
|---|---|
| public boolean isEmpty() Implements java. Doc from java. Returns
| |
| iterator | back to summary |
|---|---|
| public Iterator Implements java. Doc from java. Returns an iterator over the elements in this collection. There are no guarantees concerning the order in which the elements are returned (unless this collection is an instance of some class that provides a guarantee). | |
| remove | back to summary |
|---|---|
| public boolean remove(final Object object) Implements java. Doc from java. Removes a single instance of the specified element from this
collection, if it is present (optional operation). More formally,
removes an element | |
| removeAll | back to summary |
|---|---|
| public boolean removeAll(final Collection<?> coll) Implements java. Doc from java. Removes all of this collection's elements that are also contained in the specified collection (optional operation). After this call returns, this collection will contain no elements in common with the specified collection.
| |
| removeIf | back to summary |
|---|---|
| public boolean removeIf(final Predicate<? super E> filter) Overrides default java. Doc from java. Removes all of the elements of this collection that satisfy the given predicate. Errors or runtime exceptions thrown during iteration or by the predicate are relayed to the caller. | |
| retainAll | back to summary |
|---|---|
| public boolean retainAll(final Collection<?> coll) Implements java. Doc from java. Retains only the elements in this collection that are contained in the specified collection (optional operation). In other words, removes from this collection all of its elements that are not contained in the specified collection.
| |
| setCollection | back to summary |
|---|---|
| protected void setCollection(final Collection<E> coll) Sets the collection being decorated. Note this method should only be used during deserialization
| |
| size | back to summary |
|---|---|
| public int size() Implements java. Doc from java. Returns the number of elements in this collection. If this collection
contains more than
| |
| toArray | back to summary |
|---|---|
| public Object[] toArray() Implements java. Doc from java. Returns an array containing all of the elements in this collection.
If this collection makes any guarantees as to what order its elements
are returned by its iterator, this method must return the elements in
the same order. The returned array's runtime component type is The returned array will be "safe" in that no references to it are maintained by this collection. (In other words, this method must allocate a new array even if this collection is backed by an array). The caller is thus free to modify the returned array.
| |
| toArray | back to summary |
|---|---|
| public <T> T[] toArray(final T[] object) Implements java. Doc from java. Returns an array containing all of the elements in this collection; the runtime type of the returned array is that of the specified array. If the collection fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this collection. If this collection fits in the specified array with room to spare
(i.e., the array has more elements than this collection), the element
in the array immediately following the end of the collection is set to
If this collection makes any guarantees as to what order its elements are returned by its iterator, this method must return the elements in the same order.
| |
| toString | back to summary |
|---|---|
| public String toString() Overrides java. Doc from java. Returns a string representation of the object. | |