Class CompositeCollection<E>
- Type Parameters:
- E- the type of the elements in the collection
- All Implemented Interfaces:
- Serializable,- Iterable<E>,- Collection<E>
Changes made to this collection will actually be made on the decorated collection. Add and remove operations require the use of a pluggable strategy. If no strategy is provided then add and remove are unsupported.
- Since:
- 3.0
- See Also:
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic interfacePluggable strategy to handle changes to the composite.
- 
Constructor SummaryConstructorsConstructorDescriptionCreate an empty CompositeCollection.CompositeCollection(Collection<E> compositeCollection) Create a Composite Collection with one collection.CompositeCollection(Collection<E>... compositeCollections) Create a Composite Collection with an array of collections.CompositeCollection(Collection<E> compositeCollection1, Collection<E> compositeCollection2) Create a Composite Collection with two collections.
- 
Method SummaryModifier and TypeMethodDescriptionbooleanAdds an object to the collection, throwing UnsupportedOperationException unless a CollectionMutator strategy is specified.booleanaddAll(Collection<? extends E> coll) Adds a collection of elements to this collection, throwing UnsupportedOperationException unless a CollectionMutator strategy is specified.voidaddComposited(Collection<E> compositeCollection) Add these Collections to the list of collections in this compositevoidaddComposited(Collection<E>... compositeCollections) Add these Collections to the list of collections in this compositevoidaddComposited(Collection<E> compositeCollection1, Collection<E> compositeCollection2) Add these Collections to the list of collections in this compositevoidclear()Removes all of the elements from this collection.booleanChecks whether this composite collection contains the object.booleancontainsAll(Collection<?> coll) Checks whether this composite contains all the elements in the specified collection.List<Collection<E>> Gets the collections being decorated.protected CompositeCollection.CollectionMutator<E> Gets the collection mutator to be used for this CompositeCollection.booleanisEmpty()Checks whether this composite collection is empty.iterator()Gets an iterator over all the collections in this composite.booleanRemoves an object from the collection, throwing UnsupportedOperationException unless a CollectionMutator strategy is specified.booleanremoveAll(Collection<?> coll) Removes the elements in the specified collection from this composite collection.voidremoveComposited(Collection<E> coll) Removes a collection from the those being decorated in this composite.booleanRemoves all of the elements of this collection that satisfy the given predicate from this composite collection.booleanretainAll(Collection<?> coll) Retains all the elements in the specified collection in this composite collection, removing all others.voidsetMutator(CompositeCollection.CollectionMutator<E> mutator) Specify a CollectionMutator strategy instance to handle changes.intsize()Gets the size of this composite collection.Object[]toArray()Returns an array containing all of the elements in this composite.<T> T[]toArray(T[] array) Returns an object array, populating the supplied array if possible.Returns a new collection containing all of the elementsMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Collectionequals, hashCode, parallelStream, spliterator, stream
- 
Constructor Details- 
CompositeCollectionpublic CompositeCollection()Create an empty CompositeCollection.
- 
CompositeCollectionCreate a Composite Collection with one collection.- Parameters:
- compositeCollection- the Collection to be appended to the composite
 
- 
CompositeCollectionCreate a Composite Collection with an array of collections.- Parameters:
- compositeCollections- the collections to composite
 
- 
CompositeCollectionCreate a Composite Collection with two collections.- Parameters:
- compositeCollection1- the Collection to be appended to the composite
- compositeCollection2- the Collection to be appended to the composite
 
 
- 
- 
Method Details- 
addAdds an object to the collection, throwing UnsupportedOperationException unless a CollectionMutator strategy is specified.- Specified by:
- addin interface- Collection<E>
- Parameters:
- obj- the object to add
- Returns:
- trueif the collection was modified
- Throws:
- UnsupportedOperationException- if CollectionMutator hasn't been set
- UnsupportedOperationException- if add is unsupported
- ClassCastException- if the object cannot be added due to its type
- NullPointerException- if the object cannot be added because its null
- IllegalArgumentException- if the object cannot be added
 
- 
addAllAdds a collection of elements to this collection, throwing UnsupportedOperationException unless a CollectionMutator strategy is specified.- Specified by:
- addAllin interface- Collection<E>
- Parameters:
- coll- the collection to add
- Returns:
- true if the collection was modified
- Throws:
- UnsupportedOperationException- if CollectionMutator hasn't been set
- UnsupportedOperationException- if add is unsupported
- ClassCastException- if the object cannot be added due to its type
- NullPointerException- if the object cannot be added because its null
- IllegalArgumentException- if the object cannot be added
 
- 
addCompositedAdd these Collections to the list of collections in this composite- Parameters:
- compositeCollection- the Collection to be appended to the composite
 
- 
addCompositedAdd these Collections to the list of collections in this composite- Parameters:
- compositeCollections- the Collections to be appended to the composite
 
- 
addCompositedAdd these Collections to the list of collections in this composite- Parameters:
- compositeCollection1- the Collection to be appended to the composite
- compositeCollection2- the Collection to be appended to the composite
 
- 
clearRemoves all of the elements from this collection.This implementation calls clear()on each collection.- Specified by:
- clearin interface- Collection<E>
- Throws:
- UnsupportedOperationException- if clear is unsupported
 
- 
containsChecks whether this composite collection contains the object.This implementation calls contains()on each collection.- Specified by:
- containsin interface- Collection<E>
- Parameters:
- obj- the object to search for
- Returns:
- true if obj is contained in any of the contained collections
 
- 
containsAllChecks whether this composite contains all the elements in the specified collection.This implementation calls contains()for each element in the specified collection.- Specified by:
- containsAllin interface- Collection<E>
- Parameters:
- coll- the collection to check for
- Returns:
- true if all elements contained
 
- 
getCollectionsGets the collections being decorated.- Returns:
- Unmodifiable list of all collections in this composite.
 
- 
getMutatorGets the collection mutator to be used for this CompositeCollection.- Returns:
- CollectionMutator<E>
 
- 
isEmptyChecks whether this composite collection is empty.This implementation calls isEmpty()on each collection.- Specified by:
- isEmptyin interface- Collection<E>
- Returns:
- true if all of the contained collections are empty
 
- 
iteratorGets an iterator over all the collections in this composite.This implementation uses an IteratorChain.
- 
removeRemoves an object from the collection, throwing UnsupportedOperationException unless a CollectionMutator strategy is specified.- Specified by:
- removein interface- Collection<E>
- Parameters:
- obj- the object being removed
- Returns:
- true if the collection is changed
- Throws:
- UnsupportedOperationException- if removed is unsupported
- ClassCastException- if the object cannot be removed due to its type
- NullPointerException- if the object cannot be removed because its null
- IllegalArgumentException- if the object cannot be removed
 
- 
removeAllRemoves the elements in the specified collection from this composite collection.This implementation calls removeAllon each collection.- Specified by:
- removeAllin interface- Collection<E>
- Parameters:
- coll- the collection to remove
- Returns:
- true if the collection was modified
- Throws:
- UnsupportedOperationException- if removeAll is unsupported
 
- 
removeCompositedRemoves a collection from the those being decorated in this composite.- Parameters:
- coll- collection to be removed
 
- 
removeIfRemoves all of the elements of this collection that satisfy the given predicate from this composite collection.This implementation calls removeIfon each collection.- Specified by:
- removeIfin interface- Collection<E>
- Parameters:
- filter- a predicate which returns true for elements to be removed
- Returns:
- true if the collection was modified
- Throws:
- UnsupportedOperationException- if removeIf is unsupported
- Since:
- 4.4
 
- 
retainAllRetains all the elements in the specified collection in this composite collection, removing all others.This implementation calls retainAll()on each collection.- Specified by:
- retainAllin interface- Collection<E>
- Parameters:
- coll- the collection to remove
- Returns:
- true if the collection was modified
- Throws:
- UnsupportedOperationException- if retainAll is unsupported
 
- 
setMutatorSpecify a CollectionMutator strategy instance to handle changes.- Parameters:
- mutator- the mutator to use
 
- 
sizeGets the size of this composite collection.This implementation calls size()on each collection.- Specified by:
- sizein interface- Collection<E>
- Returns:
- total number of elements in all contained containers
 
- 
toArrayReturns an array containing all of the elements in this composite.- Specified by:
- toArrayin interface- Collection<E>
- Returns:
- an object array of all the elements in the collection
 
- 
toArrayReturns an object array, populating the supplied array if possible. SeeCollectioninterface for full details.- Specified by:
- toArrayin interface- Collection<E>
- Type Parameters:
- T- the type of the elements in the collection
- Parameters:
- array- the array to use, populating if possible
- Returns:
- an array of all the elements in the collection
 
- 
toCollectionReturns a new collection containing all of the elements- Returns:
- A new ArrayList containing all of the elements in this composite. The new collection is not backed by this composite.
 
 
-