Class AbstractCollectionDecorator<E>
- Type Parameters:
- E- the type of the elements in the collection
- All Implemented Interfaces:
- Serializable,- Iterable<E>,- Collection<E>
- Direct Known Subclasses:
- AbstractBagDecorator,- AbstractDualBidiMap.View,- AbstractListDecorator,- AbstractMultiSetDecorator,- AbstractQueueDecorator,- AbstractSetDecorator,- IndexedCollection,- PredicatedCollection,- TransformedCollection,- UnmodifiableBoundedCollection,- UnmodifiableCollection
Collection to provide additional behavior.
 
 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 behavior. 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 Collections.unmodifiableCollection(Collection).
 Use an interface-specific subclass of AbstractCollectionDecorator, such as
 AbstractListDecorator, to preserve equality behavior, or override equals directly.
 
- Since:
- 3.0
- See Also:
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedConstructor only used in deserialization, do not use otherwise.protectedAbstractCollectionDecorator(Collection<E> collection) Constructor that wraps (not copies).
- 
Method SummaryModifier and TypeMethodDescriptionbooleanbooleanaddAll(Collection<? extends E> coll) voidclear()booleanbooleancontainsAll(Collection<?> coll) protected Collection<E> Gets the collection being decorated.booleanisEmpty()iterator()booleanbooleanremoveAll(Collection<?> coll) booleanbooleanretainAll(Collection<?> coll) protected voidsetCollection(Collection<E> collection) Sets the collection being decorated.intsize()Object[]toArray()<T> T[]toArray(T[] object) toString()Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Collectionequals, hashCode, parallelStream, spliterator, stream
- 
Constructor Details- 
AbstractCollectionDecoratorprotected AbstractCollectionDecorator()Constructor only used in deserialization, do not use otherwise.- Since:
- 3.1
 
- 
AbstractCollectionDecoratorConstructor that wraps (not copies).- Parameters:
- collection- the collection to decorate, must not be null
- Throws:
- NullPointerException- if the collection is null
 
 
- 
- 
Method Details- 
add- Specified by:
- addin interface- Collection<E>
 
- 
addAll- Specified by:
- addAllin interface- Collection<E>
 
- 
clear- Specified by:
- clearin interface- Collection<E>
 
- 
contains- Specified by:
- containsin interface- Collection<E>
 
- 
containsAll- Specified by:
- containsAllin interface- Collection<E>
 
- 
decoratedGets the collection being decorated. All access to the decorated collection goes via this method.- Returns:
- the decorated collection
 
- 
isEmpty- Specified by:
- isEmptyin interface- Collection<E>
 
- 
iterator
- 
remove- Specified by:
- removein interface- Collection<E>
 
- 
removeAll- Specified by:
- removeAllin interface- Collection<E>
 
- 
removeIf
- 
retainAll- Specified by:
- retainAllin interface- Collection<E>
 
- 
setCollectionSets the collection being decorated.NOTE: this method should only be used during deserialization - Parameters:
- collection- the decorated collection
 
- 
size- Specified by:
- sizein interface- Collection<E>
 
- 
toArray- Specified by:
- toArrayin interface- Collection<E>
 
- 
toArray- Specified by:
- toArrayin interface- Collection<E>
 
- 
toString
 
-