@GwtCompatible public abstract class ForwardingCollection<E> extends ForwardingObject implements Collection<E>
Warning: The methods of ForwardingCollection
forward
indiscriminately to the methods of the delegate. For example,
overriding add(E)
alone will not change the behavior of addAll(java.util.Collection<? extends E>)
, which can lead to unexpected behavior. In this case, you should
override addAll
as well, either providing your own implementation, or
delegating to the provided standardAddAll
method.
default
method warning: This class does not forward calls to default
methods. Instead, it inherits their default implementations. When those implementations
invoke methods, they invoke methods on the ForwardingCollection
.
The standard
methods are not guaranteed to be thread-safe, even
when all of the methods that they depend on are thread-safe.
Modifier | Constructor and Description |
---|---|
protected |
ForwardingCollection()
Constructor for use by subclasses.
|
Modifier and Type | Method and Description |
---|---|
boolean |
add(E element) |
boolean |
addAll(Collection<? extends E> collection) |
void |
clear() |
boolean |
contains(Object object) |
boolean |
containsAll(Collection<?> collection) |
protected abstract Collection<E> |
delegate()
Returns the backing delegate instance that methods are forwarded to.
|
boolean |
isEmpty() |
Iterator<E> |
iterator() |
boolean |
remove(Object object) |
boolean |
removeAll(Collection<?> collection) |
boolean |
retainAll(Collection<?> collection) |
int |
size() |
protected boolean |
standardAddAll(Collection<? extends E> collection)
A sensible definition of
addAll(java.util.Collection<? extends E>) in terms of add(E) . |
protected void |
standardClear()
|
protected boolean |
standardContains(Object object)
A sensible definition of
contains(java.lang.Object) in terms of iterator() . |
protected boolean |
standardContainsAll(Collection<?> collection)
A sensible definition of
containsAll(java.util.Collection<?>) in terms of contains(java.lang.Object)
. |
protected boolean |
standardIsEmpty()
A sensible definition of
isEmpty() as !iterator().hasNext . |
protected boolean |
standardRemove(Object object)
A sensible definition of
remove(java.lang.Object) in terms of iterator() ,
using the iterator's remove method. |
protected boolean |
standardRemoveAll(Collection<?> collection)
A sensible definition of
removeAll(java.util.Collection<?>) in terms of iterator() ,
using the iterator's remove method. |
protected boolean |
standardRetainAll(Collection<?> collection)
A sensible definition of
retainAll(java.util.Collection<?>) in terms of iterator() ,
using the iterator's remove method. |
protected Object[] |
standardToArray()
A sensible definition of
toArray() in terms of toArray(Object[]) . |
protected <T> T[] |
standardToArray(T[] array)
|
protected String |
standardToString()
A sensible definition of
ForwardingObject.toString() in terms of iterator() . |
Object[] |
toArray() |
<T> T[] |
toArray(T[] array) |
toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
equals, hashCode, parallelStream, removeIf, spliterator, stream
protected ForwardingCollection()
protected abstract Collection<E> delegate()
ForwardingObject
ForwardingSet.delegate()
. Concrete subclasses override this method to supply
the instance being decorated.delegate
in class ForwardingObject
public int size()
size
in interface Collection<E>
public boolean removeAll(Collection<?> collection)
removeAll
in interface Collection<E>
public boolean isEmpty()
isEmpty
in interface Collection<E>
public boolean contains(Object object)
contains
in interface Collection<E>
public boolean add(E element)
add
in interface Collection<E>
public boolean remove(Object object)
remove
in interface Collection<E>
public boolean containsAll(Collection<?> collection)
containsAll
in interface Collection<E>
public boolean addAll(Collection<? extends E> collection)
addAll
in interface Collection<E>
public boolean retainAll(Collection<?> collection)
retainAll
in interface Collection<E>
public void clear()
clear
in interface Collection<E>
public Object[] toArray()
toArray
in interface Collection<E>
public <T> T[] toArray(T[] array)
toArray
in interface Collection<E>
protected boolean standardContains(@Nullable Object object)
contains(java.lang.Object)
in terms of iterator()
.
If you override iterator()
, you may wish to override contains(java.lang.Object)
to forward to this implementation.protected boolean standardContainsAll(Collection<?> collection)
containsAll(java.util.Collection<?>)
in terms of contains(java.lang.Object)
. If you override contains(java.lang.Object)
, you may wish to override containsAll(java.util.Collection<?>)
to forward to this implementation.protected boolean standardAddAll(Collection<? extends E> collection)
addAll(java.util.Collection<? extends E>)
in terms of add(E)
. If you
override add(E)
, you may wish to override addAll(java.util.Collection<? extends E>)
to forward
to this implementation.protected boolean standardRemove(@Nullable Object object)
remove(java.lang.Object)
in terms of iterator()
,
using the iterator's remove
method. If you override iterator()
, you may wish to override remove(java.lang.Object)
to forward to this
implementation.protected boolean standardRemoveAll(Collection<?> collection)
removeAll(java.util.Collection<?>)
in terms of iterator()
,
using the iterator's remove
method. If you override iterator()
, you may wish to override removeAll(java.util.Collection<?>)
to forward to this
implementation.protected boolean standardRetainAll(Collection<?> collection)
retainAll(java.util.Collection<?>)
in terms of iterator()
,
using the iterator's remove
method. If you override iterator()
, you may wish to override retainAll(java.util.Collection<?>)
to forward to this
implementation.protected void standardClear()
clear()
in terms of iterator()
,
using the iterator's remove
method. If you override iterator()
, you may wish to override clear()
to forward to this
implementation.protected boolean standardIsEmpty()
isEmpty()
as !iterator().hasNext
.
If you override isEmpty()
, you may wish to override isEmpty()
to forward to this implementation. Alternately, it may be more efficient to
implement isEmpty
as size() == 0
.protected String standardToString()
ForwardingObject.toString()
in terms of iterator()
.
If you override iterator()
, you may wish to override ForwardingObject.toString()
to forward to this implementation.protected Object[] standardToArray()
toArray()
in terms of toArray(Object[])
. If you override toArray(Object[])
, you may
wish to override toArray()
to forward to this implementation.protected <T> T[] standardToArray(T[] array)
toArray(Object[])
in terms of size()
and iterator()
. If you override either of these methods, you
may wish to override toArray()
to forward to this implementation.Copyright © 2010–2017. All rights reserved.