S - the source of a PTraversalT - the modified source of a PTraversalA - the target of a PTraversalB - the modified target of a PTraversalpublic abstract class PTraversal<S,T,A,B>
extends java.lang.Object
PTraversal can be seen as a POptional generalised to 0 to n targets where n can be infinite.
PTraversal stands for Polymorphic Traversal as it set and modify methods change a type `A` to `B` and `S` to `T`.
Traversal is a PTraversal restricted to monomoprhic updates.| Constructor and Description |
|---|
PTraversal() |
| Modifier and Type | Method and Description |
|---|---|
F<S,java.lang.Boolean> |
all(F<A,java.lang.Boolean> p)
check if all targets satisfy the predicate
|
Fold<S,A> |
asFold()
view a
PTraversal as a Fold |
PSetter<S,T,A,B> |
asSetter()
view a
PTraversal as a PSetter |
<C> Fold<S,C> |
composeFold(Fold<A,C> other)
compose a
PTraversal with a Fold |
<C> Fold<S,C> |
composeFold(Getter<A,C> other)
compose a
PTraversal with a Getter |
<C,D> PTraversal<S,T,C,D> |
composeIso(PIso<A,B,C,D> other)
compose a
PTraversal with a PIso |
<C,D> PTraversal<S,T,C,D> |
composeLens(PLens<A,B,C,D> other)
compose a
PTraversal with a PLens |
<C,D> PTraversal<S,T,C,D> |
composeOptional(POptional<A,B,C,D> other)
compose a
PTraversal with a POptional |
<C,D> PTraversal<S,T,C,D> |
composePrism(PPrism<A,B,C,D> other)
compose a
PTraversal with a PPrism |
<C,D> PSetter<S,T,C,D> |
composeSetter(PSetter<A,B,C,D> other)
compose a
PTraversal with a PSetter |
<C,D> PTraversal<S,T,C,D> |
composeTraversal(PTraversal<A,B,C,D> other)
compose a
PTraversal with a PTraversal |
F<S,java.lang.Boolean> |
exist(F<A,java.lang.Boolean> p)
check if at least one target satisfies the predicate
|
F<S,Option<A>> |
find(F<A,java.lang.Boolean> p)
find the first target of a
PTraversal matching the predicate |
F<S,A> |
fold(Monoid<A> m)
combine all targets using a target's
Monoid |
abstract <M> F<S,M> |
foldMap(Monoid<M> monoid,
F<A,M> f)
map each target to a
Monoid and combine the results |
List<A> |
getAll(S s)
get all the targets of a
PTraversal |
Option<A> |
headOption(S s)
get the first target of a
PTraversal |
F<S,T> |
modify(F<A,B> f)
modify polymorphically the target of a
PTraversal with a function |
abstract <L> F<S,Either<L,T>> |
modifyEitherF(F<A,Either<L,B>> f)
modify polymorphically the target of a
PTraversal with an Applicative function |
abstract <C> F<S,F<C,T>> |
modifyFunctionF(F<A,F<C,B>> f)
modify polymorphically the target of a
PTraversal with an Applicative function |
abstract F<S,IO<T>> |
modifyIOF(F<A,IO<B>> f)
modify polymorphically the target of a
PTraversal with an Applicative function |
abstract F<S,List<T>> |
modifyListF(F<A,List<B>> f)
modify polymorphically the target of a
PTraversal with an Applicative function |
abstract F<S,Option<T>> |
modifyOptionF(F<A,Option<B>> f)
modify polymorphically the target of a
PTraversal with an Applicative function |
abstract F<S,P1<T>> |
modifyP1F(F<A,P1<B>> f)
modify polymorphically the target of a
PTraversal with an Applicative function |
abstract F<S,Promise<T>> |
modifyPromiseF(F<A,Promise<B>> f)
modify polymorphically the target of a
PTraversal with an Applicative function |
abstract F<S,Stream<T>> |
modifyStreamF(F<A,Stream<B>> f)
modify polymorphically the target of a
PTraversal with an Applicative function |
abstract F<S,Trampoline<T>> |
modifyTrampolineF(F<A,Trampoline<B>> f)
modify polymorphically the target of a
PTraversal with an Applicative function |
abstract F<S,V2<T>> |
modifyV2F(F<A,V2<B>> f)
modify polymorphically the target of a
PTraversal with an Applicative function |
abstract <E> F<S,Validation<E,T>> |
modifyValidationF(Semigroup<E> s,
F<A,Validation<E,B>> f)
modify polymorphically the target of a
PTraversal with an Applicative function |
static <S,T> PTraversal<Either<S,S>,Either<T,T>,S,T> |
pCodiagonal() |
static <S,T> PTraversal<S,T,S,T> |
pId() |
static <S,T,A,B> PTraversal<S,T,A,B> |
pTraversal(F<S,A> get1,
F<S,A> get2,
F<S,A> get3,
F<S,A> get4,
F<S,A> get5,
F<S,A> get6,
F7<B,B,B,B,B,B,S,T> set) |
static <S,T,A,B> PTraversal<S,T,A,B> |
pTraversal(F<S,A> get1,
F<S,A> get2,
F<S,A> get3,
F<S,A> get4,
F<S,A> get5,
F6<B,B,B,B,B,S,T> set) |
static <S,T,A,B> PTraversal<S,T,A,B> |
pTraversal(F<S,A> get1,
F<S,A> get2,
F<S,A> get3,
F<S,A> get4,
F5<B,B,B,B,S,T> set) |
static <S,T,A,B> PTraversal<S,T,A,B> |
pTraversal(F<S,A> get1,
F<S,A> get2,
F<S,A> get3,
F4<B,B,B,S,T> set) |
static <S,T,A,B> PTraversal<S,T,A,B> |
pTraversal(F<S,A> get1,
F<S,A> get2,
F3<B,B,S,T> set) |
F<S,T> |
set(B b)
set polymorphically the target of a
PTraversal with a value |
<S1,T1> PTraversal<Either<S,S1>,Either<T,T1>,A,B> |
sum(PTraversal<S1,T1,A,B> other)
join two
PTraversal with the same target |
public abstract <C> F<S,F<C,T>> modifyFunctionF(F<A,F<C,B>> f)
PTraversal with an Applicative functionpublic abstract <L> F<S,Either<L,T>> modifyEitherF(F<A,Either<L,B>> f)
PTraversal with an Applicative functionpublic abstract F<S,IO<T>> modifyIOF(F<A,IO<B>> f)
PTraversal with an Applicative functionpublic abstract F<S,Trampoline<T>> modifyTrampolineF(F<A,Trampoline<B>> f)
PTraversal with an Applicative functionpublic abstract F<S,Promise<T>> modifyPromiseF(F<A,Promise<B>> f)
PTraversal with an Applicative functionpublic abstract F<S,List<T>> modifyListF(F<A,List<B>> f)
PTraversal with an Applicative functionpublic abstract F<S,Option<T>> modifyOptionF(F<A,Option<B>> f)
PTraversal with an Applicative functionpublic abstract F<S,Stream<T>> modifyStreamF(F<A,Stream<B>> f)
PTraversal with an Applicative functionpublic abstract F<S,P1<T>> modifyP1F(F<A,P1<B>> f)
PTraversal with an Applicative functionpublic abstract <E> F<S,Validation<E,T>> modifyValidationF(Semigroup<E> s, F<A,Validation<E,B>> f)
PTraversal with an Applicative functionpublic abstract F<S,V2<T>> modifyV2F(F<A,V2<B>> f)
PTraversal with an Applicative functionpublic abstract <M> F<S,M> foldMap(Monoid<M> monoid, F<A,M> f)
Monoid and combine the resultspublic final List<A> getAll(S s)
PTraversalpublic final F<S,Option<A>> find(F<A,java.lang.Boolean> p)
PTraversal matching the predicatepublic final Option<A> headOption(S s)
PTraversalpublic final F<S,java.lang.Boolean> exist(F<A,java.lang.Boolean> p)
public final F<S,java.lang.Boolean> all(F<A,java.lang.Boolean> p)
public final F<S,T> modify(F<A,B> f)
PTraversal with a functionpublic final F<S,T> set(B b)
PTraversal with a valuepublic final <S1,T1> PTraversal<Either<S,S1>,Either<T,T1>,A,B> sum(PTraversal<S1,T1,A,B> other)
PTraversal with the same targetpublic final <C> Fold<S,C> composeFold(Fold<A,C> other)
PTraversal with a Foldpublic final <C> Fold<S,C> composeFold(Getter<A,C> other)
PTraversal with a Getterpublic final <C,D> PSetter<S,T,C,D> composeSetter(PSetter<A,B,C,D> other)
PTraversal with a PSetterpublic final <C,D> PTraversal<S,T,C,D> composeTraversal(PTraversal<A,B,C,D> other)
PTraversal with a PTraversalpublic final <C,D> PTraversal<S,T,C,D> composeOptional(POptional<A,B,C,D> other)
PTraversal with a POptionalpublic final <C,D> PTraversal<S,T,C,D> composePrism(PPrism<A,B,C,D> other)
PTraversal with a PPrismpublic final <C,D> PTraversal<S,T,C,D> composeLens(PLens<A,B,C,D> other)
PTraversal with a PLenspublic final <C,D> PTraversal<S,T,C,D> composeIso(PIso<A,B,C,D> other)
PTraversal with a PIsopublic final Fold<S,A> asFold()
PTraversal as a Foldpublic static <S,T> PTraversal<S,T,S,T> pId()
public static <S,T> PTraversal<Either<S,S>,Either<T,T>,S,T> pCodiagonal()
public static <S,T,A,B> PTraversal<S,T,A,B> pTraversal(F<S,A> get1, F<S,A> get2, F3<B,B,S,T> set)
public static <S,T,A,B> PTraversal<S,T,A,B> pTraversal(F<S,A> get1, F<S,A> get2, F<S,A> get3, F4<B,B,B,S,T> set)
public static <S,T,A,B> PTraversal<S,T,A,B> pTraversal(F<S,A> get1, F<S,A> get2, F<S,A> get3, F<S,A> get4, F5<B,B,B,B,S,T> set)
public static <S,T,A,B> PTraversal<S,T,A,B> pTraversal(F<S,A> get1, F<S,A> get2, F<S,A> get3, F<S,A> get4, F<S,A> get5, F6<B,B,B,B,B,S,T> set)