- All Implemented Interfaces:
Iterable<E>
,Collection<E>
- Direct Known Subclasses:
ForwardingList
,ForwardingMultiset
,ForwardingQueue
,ForwardingSet
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.
- Since:
- 2.0
- Author:
- Kevin Bourrillion, Louis Wasserman
-
Constructor Summary
ModifierConstructorDescriptionprotected
Constructor for use by subclasses. -
Method Summary
Modifier and TypeMethodDescriptionboolean
boolean
addAll
(Collection<? extends E> collection) void
clear()
boolean
boolean
containsAll
(Collection<?> collection) protected abstract Collection
<E> delegate()
Returns the backing delegate instance that methods are forwarded to.boolean
isEmpty()
iterator()
boolean
boolean
removeAll
(Collection<?> collection) boolean
retainAll
(Collection<?> collection) int
size()
protected boolean
standardAddAll
(Collection<? extends E> collection) A sensible definition ofaddAll(java.util.Collection<? extends E>)
in terms ofadd(E)
.protected void
protected boolean
standardContains
(@Nullable Object object) A sensible definition ofcontains(java.lang.Object)
in terms ofiterator()
.protected boolean
standardContainsAll
(Collection<?> collection) A sensible definition ofcontainsAll(java.util.Collection<?>)
in terms ofcontains(java.lang.Object)
.protected boolean
A sensible definition ofisEmpty()
as!iterator().hasNext
.protected boolean
standardRemove
(@Nullable Object object) A sensible definition ofremove(java.lang.Object)
in terms ofiterator()
, using the iterator'sremove
method.protected boolean
standardRemoveAll
(Collection<?> collection) A sensible definition ofremoveAll(java.util.Collection<?>)
in terms ofiterator()
, using the iterator'sremove
method.protected boolean
standardRetainAll
(Collection<?> collection) A sensible definition ofretainAll(java.util.Collection<?>)
in terms ofiterator()
, using the iterator'sremove
method.A sensible definition oftoArray()
in terms oftoArray(Object[])
.standardToArray
(T[] array) protected String
A sensible definition ofForwardingObject.toString()
in terms ofiterator()
.toArray()
toArray
(T[] array) Methods inherited from class com.google.common.collect.ForwardingObject
toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
equals, hashCode, parallelStream, removeIf, spliterator, stream, toArray
-
Constructor Details
-
ForwardingCollection
protected ForwardingCollection()Constructor for use by subclasses.
-
-
Method Details
-
delegate
Description copied from class:ForwardingObject
Returns the backing delegate instance that methods are forwarded to. Abstract subclasses generally override this method with an abstract method that has a more specific return type, such asForwardingSet.delegate()
. Concrete subclasses override this method to supply the instance being decorated.- Specified by:
delegate
in classForwardingObject
-
iterator
-
size
-
removeAll
- Specified by:
removeAll
in interfaceCollection<E extends @Nullable Object>
-
isEmpty
-
contains
-
add
- Specified by:
add
in interfaceCollection<E extends @Nullable Object>
-
remove
- Specified by:
remove
in interfaceCollection<E extends @Nullable Object>
-
containsAll
- Specified by:
containsAll
in interfaceCollection<E extends @Nullable Object>
-
addAll
- Specified by:
addAll
in interfaceCollection<E extends @Nullable Object>
-
retainAll
- Specified by:
retainAll
in interfaceCollection<E extends @Nullable Object>
-
clear
-
toArray
-
toArray
- Specified by:
toArray
in interfaceCollection<E extends @Nullable Object>
-
standardContains
A sensible definition ofcontains(java.lang.Object)
in terms ofiterator()
. If you overrideiterator()
, you may wish to overridecontains(java.lang.Object)
to forward to this implementation.- Since:
- 7.0
-
standardContainsAll
A sensible definition ofcontainsAll(java.util.Collection<?>)
in terms ofcontains(java.lang.Object)
. If you overridecontains(java.lang.Object)
, you may wish to overridecontainsAll(java.util.Collection<?>)
to forward to this implementation.- Since:
- 7.0
-
standardAddAll
A sensible definition ofaddAll(java.util.Collection<? extends E>)
in terms ofadd(E)
. If you overrideadd(E)
, you may wish to overrideaddAll(java.util.Collection<? extends E>)
to forward to this implementation.- Since:
- 7.0
-
standardRemove
A sensible definition ofremove(java.lang.Object)
in terms ofiterator()
, using the iterator'sremove
method. If you overrideiterator()
, you may wish to overrideremove(java.lang.Object)
to forward to this implementation.- Since:
- 7.0
-
standardRemoveAll
A sensible definition ofremoveAll(java.util.Collection<?>)
in terms ofiterator()
, using the iterator'sremove
method. If you overrideiterator()
, you may wish to overrideremoveAll(java.util.Collection<?>)
to forward to this implementation.- Since:
- 7.0
-
standardRetainAll
A sensible definition ofretainAll(java.util.Collection<?>)
in terms ofiterator()
, using the iterator'sremove
method. If you overrideiterator()
, you may wish to overrideretainAll(java.util.Collection<?>)
to forward to this implementation.- Since:
- 7.0
-
standardClear
A sensible definition ofclear()
in terms ofiterator()
, using the iterator'sremove
method. If you overrideiterator()
, you may wish to overrideclear()
to forward to this implementation.- Since:
- 7.0
-
standardIsEmpty
-
standardToString
A sensible definition ofForwardingObject.toString()
in terms ofiterator()
. If you overrideiterator()
, you may wish to overrideForwardingObject.toString()
to forward to this implementation.- Since:
- 7.0
-
standardToArray
A sensible definition oftoArray()
in terms oftoArray(Object[])
. If you overridetoArray(Object[])
, you may wish to overridetoArray()
to forward to this implementation.- Since:
- 7.0
-
standardToArray
A sensible definition oftoArray(Object[])
in terms ofsize()
anditerator()
. If you override either of these methods, you may wish to overridetoArray()
to forward to this implementation.- Since:
- 7.0
-