public final class CollectionLens extends Object
Collection
s.Modifier and Type | Method and Description |
---|---|
static <X,CX extends Collection<X>> |
asCopy(Fn1<? super CX,? extends CX> copyFn)
Convenience static factory method for creating a lens that focuses on a copy of a
Collection , given
a function that creates the copy. |
static <X,CX extends Collection<X>> |
asSet(Fn1<? super CX,? extends CX> copyFn)
Convenience static factory method for creating a lens that focuses on an arbitrary
Collection as a
Set . |
static <X,CX extends Collection<X>> |
asStream(Fn1<? super CX,? extends CX> copyFn)
Convenience static factory method for creating a lens that focuses on a Collection as a Stream.
|
public static <X,CX extends Collection<X>> Lens.Simple<CX,CX> asCopy(Fn1<? super CX,? extends CX> copyFn)
Collection
, given
a function that creates the copy. Useful for composition to avoid mutating a Collection
reference.X
- the collection element typeCX
- the type of the collectioncopyFn
- the copying functionpublic static <X,CX extends Collection<X>> Lens.Simple<CX,Set<X>> asSet(Fn1<? super CX,? extends CX> copyFn)
Collection
as a
Set
.X
- the collection element typeCX
- the type of the collectioncopyFn
- the copying functionpublic static <X,CX extends Collection<X>> Lens.Simple<CX,Stream<X>> asStream(Fn1<? super CX,? extends CX> copyFn)
Note that this lens is effectively lawful, though difficult to prove given the intrinsically
stateful and inequitable nature of Stream
.
X
- the collection element typeCX
- the type of the collectioncopyFn
- the copying function