Class ForwardingCollection<E extends @Nullable java.lang.Object>
- java.lang.Object
- 
- com.google.common.collect.ForwardingObject
- 
- com.google.common.collect.ForwardingCollection<E>
 
 
- 
- All Implemented Interfaces:
- java.lang.Iterable<E>,- java.util.Collection<E>
 - Direct Known Subclasses:
- ForwardingList,- ForwardingMultiset,- ForwardingQueue,- ForwardingSet
 
 @GwtCompatible public abstract class ForwardingCollection<E extends @Nullable java.lang.Object> extends ForwardingObject implements java.util.Collection<E> A collection which forwards all its method calls to another collection. Subclasses should override one or more methods to modify the behavior of the backing collection as desired per the decorator pattern.Warning: The methods of ForwardingCollectionforward indiscriminately to the methods of the delegate. For example, overridingadd(E)alone will not change the behavior ofaddAll(java.util.Collection<? extends E>), which can lead to unexpected behavior. In this case, you should overrideaddAllas well, either providing your own implementation, or delegating to the providedstandardAddAllmethod.defaultmethod warning: This class does not forward calls todefaultmethods. Instead, it inherits their default implementations. When those implementations invoke methods, they invoke methods on theForwardingCollection.The standardmethods 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 SummaryConstructors Modifier Constructor Description protectedForwardingCollection()Constructor for use by subclasses.
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description booleanadd(E element)booleanaddAll(java.util.Collection<? extends E> collection)voidclear()booleancontains(java.lang.Object object)booleancontainsAll(java.util.Collection<?> collection)protected abstract java.util.Collection<E>delegate()Returns the backing delegate instance that methods are forwarded to.booleanisEmpty()java.util.Iterator<E>iterator()booleanremove(java.lang.Object object)booleanremoveAll(java.util.Collection<?> collection)booleanretainAll(java.util.Collection<?> collection)intsize()protected booleanstandardAddAll(java.util.Collection<? extends E> collection)A sensible definition ofaddAll(java.util.Collection<? extends E>)in terms ofadd(E).protected voidstandardClear()protected booleanstandardContains(java.lang.Object object)A sensible definition ofcontains(java.lang.Object)in terms ofiterator().protected booleanstandardContainsAll(java.util.Collection<?> collection)A sensible definition ofcontainsAll(java.util.Collection<?>)in terms ofcontains(java.lang.Object).protected booleanstandardIsEmpty()A sensible definition ofisEmpty()as!iterator().hasNext.protected booleanstandardRemove(java.lang.Object object)A sensible definition ofremove(java.lang.Object)in terms ofiterator(), using the iterator'sremovemethod.protected booleanstandardRemoveAll(java.util.Collection<?> collection)A sensible definition ofremoveAll(java.util.Collection<?>)in terms ofiterator(), using the iterator'sremovemethod.protected booleanstandardRetainAll(java.util.Collection<?> collection)A sensible definition ofretainAll(java.util.Collection<?>)in terms ofiterator(), using the iterator'sremovemethod.protected @Nullable java.lang.Object[]standardToArray()A sensible definition oftoArray()in terms oftoArray(Object[]).protected <T extends @Nullable java.lang.Object>
 T[]standardToArray(T[] array)protected java.lang.StringstandardToString()A sensible definition ofForwardingObject.toString()in terms ofiterator().@Nullable java.lang.Object[]toArray()<T extends @Nullable java.lang.Object>
 T[]toArray(T[] array)- 
Methods inherited from class com.google.common.collect.ForwardingObjecttoString
 - 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
- 
 
- 
- 
- 
Constructor Detail- 
ForwardingCollectionprotected ForwardingCollection() Constructor for use by subclasses.
 
- 
 - 
Method Detail- 
delegateprotected abstract java.util.Collection<E> delegate() Description copied from class:ForwardingObjectReturns 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:
- delegatein class- ForwardingObject
 
 - 
sizepublic int size() 
 - 
removeAll@CanIgnoreReturnValue public boolean removeAll(java.util.Collection<?> collection) 
 - 
isEmptypublic boolean isEmpty() 
 - 
containspublic boolean contains(@CheckForNull java.lang.Object object) 
 - 
add@CanIgnoreReturnValue public boolean add(E element) 
 - 
remove@CanIgnoreReturnValue public boolean remove(@CheckForNull java.lang.Object object) 
 - 
containsAllpublic boolean containsAll(java.util.Collection<?> collection) 
 - 
addAll@CanIgnoreReturnValue public boolean addAll(java.util.Collection<? extends E> collection) 
 - 
retainAll@CanIgnoreReturnValue public boolean retainAll(java.util.Collection<?> collection) 
 - 
clearpublic void clear() 
 - 
toArray@CanIgnoreReturnValue public <T extends @Nullable java.lang.Object> T[] toArray(T[] array) 
 - 
standardContainsprotected boolean standardContains(@CheckForNull java.lang.Object object) 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
 
 - 
standardContainsAllprotected boolean standardContainsAll(java.util.Collection<?> collection) 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
 
 - 
standardAddAllprotected boolean standardAddAll(java.util.Collection<? extends E> collection) 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
 
 - 
standardRemoveprotected boolean standardRemove(@CheckForNull java.lang.Object object) A sensible definition ofremove(java.lang.Object)in terms ofiterator(), using the iterator'sremovemethod. If you overrideiterator(), you may wish to overrideremove(java.lang.Object)to forward to this implementation.- Since:
- 7.0
 
 - 
standardRemoveAllprotected boolean standardRemoveAll(java.util.Collection<?> collection) A sensible definition ofremoveAll(java.util.Collection<?>)in terms ofiterator(), using the iterator'sremovemethod. If you overrideiterator(), you may wish to overrideremoveAll(java.util.Collection<?>)to forward to this implementation.- Since:
- 7.0
 
 - 
standardRetainAllprotected boolean standardRetainAll(java.util.Collection<?> collection) A sensible definition ofretainAll(java.util.Collection<?>)in terms ofiterator(), using the iterator'sremovemethod. If you overrideiterator(), you may wish to overrideretainAll(java.util.Collection<?>)to forward to this implementation.- Since:
- 7.0
 
 - 
standardClearprotected void standardClear() A sensible definition ofclear()in terms ofiterator(), using the iterator'sremovemethod. If you overrideiterator(), you may wish to overrideclear()to forward to this implementation.- Since:
- 7.0
 
 - 
standardIsEmptyprotected boolean standardIsEmpty() A sensible definition ofisEmpty()as!iterator().hasNext. If you overrideisEmpty(), you may wish to overrideisEmpty()to forward to this implementation. Alternately, it may be more efficient to implementisEmptyassize() == 0.- Since:
- 7.0
 
 - 
standardToStringprotected java.lang.String 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
 
 - 
standardToArrayprotected @Nullable java.lang.Object[] 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
 
 - 
standardToArrayprotected <T extends @Nullable java.lang.Object> T[] standardToArray(T[] array) 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
 
 
- 
 
-