T - the type the returned collection will holdpublic class ImmutableCollections<T> extends Object
This class is used to achieve deep immutability for value classes by ensuring collections in those classes contain immutable elements in addition to being immutable themselves.
| Modifier and Type | Method and Description | 
|---|---|
List<T> | 
newList(Collection<T> toCopy)
Create a new unmodifiable List containing immutable copies of the given elements. 
 | 
static <T> List<T> | 
newListOfImmutableType(Collection<T> toCopy)
Creates an unmodifiable copy of a Collection that already contains immutable types. 
 | 
static <T,S> Map<T,S> | 
newMapOfImmutableTypes(Map<T,S> toCopy)  | 
static <T,S> Map<T,S> | 
newMapOfImmutableTypes(Map<T,S> toCopy,
                      java.util.function.Supplier<Map<T,S>> mapSupplier)
Creates an unmodifiable copy of a Map that already contains immutable types. 
 | 
static <T> ImmutableCollections<T> | 
with(java.util.function.Function<T,T> immutableInstanceFactory)
Creates an instance that maps elements to an immutable form using the given mapping function. 
 | 
public static <T> ImmutableCollections<T> with(java.util.function.Function<T,T> immutableInstanceFactory)
The mapping function may return the element unmapped if it is already considered immutable.
immutableInstanceFactory - a function for mapping an element to an immutable copy of that elementpublic List<T> newList(Collection<T> toCopy)
toCopy - the Collection containing the elements to be copiedpublic static <T> List<T> newListOfImmutableType(Collection<T> toCopy)
toCopy - the Collection to copypublic static <T,S> Map<T,S> newMapOfImmutableTypes(Map<T,S> toCopy, java.util.function.Supplier<Map<T,S>> mapSupplier)
toCopy - the collection to copymapSupplier - a supplier that supplies the desired type of MapCopyright © 2021. All rights reserved.