Package io.atlassian.fugue.optic
Class PTraversal<S,T,A,B>
- java.lang.Object
-
- io.atlassian.fugue.optic.PTraversal<S,T,A,B>
-
- Type Parameters:
S- the source of aPTraversalT- the modified source of aPTraversalA- the target of aPTraversalB- the modified target of aPTraversal
- Direct Known Subclasses:
Traversal
public abstract class PTraversal<S,T,A,B> extends java.lang.ObjectAPTraversalcan be seen as aPOptionalgeneralised to 0 to n targets where n can be infinite.PTraversalstands for Polymorphic Traversal as it set and modify methods change a type `A` to `B` and `S` to `T`.Traversalis aPTraversalrestricted to monomorphic updates.
-
-
Constructor Summary
Constructors Constructor Description PTraversal()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description java.util.function.Predicate<S>all(java.util.function.Predicate<A> p)check if all targets satisfy the predicateFold<S,A>asFold()view aPTraversalas aFoldPSetter<S,T,A,B>asSetter()view aPTraversalas aPSetter<C> Fold<S,C>composeFold(Fold<A,C> other)compose aPTraversalwith aFold<C> Fold<S,C>composeFold(Getter<A,C> other)compose aPTraversalwith aGetter<C,D>
PTraversal<S,T,C,D>composeIso(PIso<A,B,C,D> other)compose aPTraversalwith aPIso<C,D>
PTraversal<S,T,C,D>composeLens(PLens<A,B,C,D> other)compose aPTraversalwith aPLens<C,D>
PTraversal<S,T,C,D>composeOptional(POptional<A,B,C,D> other)compose aPTraversalwith aPOptional<C,D>
PTraversal<S,T,C,D>composePrism(PPrism<A,B,C,D> other)compose aPTraversalwith aPPrism<C,D>
PSetter<S,T,C,D>composeSetter(PSetter<A,B,C,D> other)compose aPTraversalwith aPSetter<C,D>
PTraversal<S,T,C,D>composeTraversal(PTraversal<A,B,C,D> other)compose aPTraversalwith aPTraversaljava.util.function.Predicate<S>exist(java.util.function.Predicate<A> p)check if at least one target satisfies the predicatejava.util.function.Function<S,Option<A>>find(java.util.function.Predicate<A> p)find the first target of aPTraversalmatching the predicatejava.util.function.Function<S,A>fold(Monoid<A> monoid)combine all targets using a target'sMonoidabstract <M> java.util.function.Function<S,M>foldMap(Monoid<M> monoid, java.util.function.Function<A,M> f)map each target to aMonoidand combine the resultsprivate static <S,T,A,B>
PTraversal<S,T,A,B>fromCurried(PTraversal<S,java.util.function.Function<B,T>,A,B> curriedTraversal, java.util.function.Function<S,A> lastGet)java.lang.Iterable<A>getAll(S s)get all the targets of aPTraversalOption<A>headOption(S s)get the first target of aPTraversaljava.util.function.Function<S,T>modify(java.util.function.Function<A,B> f)modify polymorphically the target of aPTraversalwith a functionabstract <L> java.util.function.Function<S,Either<L,T>>modifyEitherF(java.util.function.Function<A,Either<L,B>> f)modify polymorphically the target of aPTraversalwith an Applicative functionabstract <C> java.util.function.Function<S,java.util.function.Function<C,T>>modifyFunctionF(java.util.function.Function<A,java.util.function.Function<C,B>> f)modify polymorphically the target of aPTraversalwith an Applicative functionabstract java.util.function.Function<S,java.lang.Iterable<T>>modifyIterableF(java.util.function.Function<A,java.lang.Iterable<B>> f)modify polymorphically the target of aPTraversalwith an Applicative functionabstract java.util.function.Function<S,Option<T>>modifyOptionF(java.util.function.Function<A,Option<B>> f)modify polymorphically the target of aPTraversalwith an Applicative functionabstract java.util.function.Function<S,Pair<T,T>>modifyPairF(java.util.function.Function<A,Pair<B,B>> f)modify polymorphically the target of aPTraversalwith an Applicative functionabstract java.util.function.Function<S,java.util.function.Supplier<T>>modifySupplierF(java.util.function.Function<A,java.util.function.Supplier<B>> f)modify polymorphically the target of aPTraversalwith an Applicative functionstatic <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(java.util.function.Function<S,A> get1, java.util.function.Function<S,A> get2, java.util.function.BiFunction<B,B,java.util.function.Function<S,T>> set)static <S,T,A,B>
PTraversal<S,T,A,B>pTraversal(java.util.function.Function<S,A> get1, java.util.function.Function<S,A> get2, java.util.function.Function<S,A> get3, java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<S,T>>>> set)static <S,T,A,B>
PTraversal<S,T,A,B>pTraversal(java.util.function.Function<S,A> get1, java.util.function.Function<S,A> get2, java.util.function.Function<S,A> get3, java.util.function.Function<S,A> get4, java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<S,T>>>>> set)static <S,T,A,B>
PTraversal<S,T,A,B>pTraversal(java.util.function.Function<S,A> get1, java.util.function.Function<S,A> get2, java.util.function.Function<S,A> get3, java.util.function.Function<S,A> get4, java.util.function.Function<S,A> get5, java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<S,T>>>>>> set)static <S,T,A,B>
PTraversal<S,T,A,B>pTraversal(java.util.function.Function<S,A> get1, java.util.function.Function<S,A> get2, java.util.function.Function<S,A> get3, java.util.function.Function<S,A> get4, java.util.function.Function<S,A> get5, java.util.function.Function<S,A> get6, java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<S,T>>>>>>> set)java.util.function.Function<S,T>set(B b)set polymorphically the target of aPTraversalwith a value<S1,T1>
PTraversal<Either<S,S1>,Either<T,T1>,A,B>sum(PTraversal<S1,T1,A,B> other)join twoPTraversalwith the same target
-
-
-
Method Detail
-
modifyFunctionF
public abstract <C> java.util.function.Function<S,java.util.function.Function<C,T>> modifyFunctionF(java.util.function.Function<A,java.util.function.Function<C,B>> f)
modify polymorphically the target of aPTraversalwith an Applicative function
-
modifyEitherF
public abstract <L> java.util.function.Function<S,Either<L,T>> modifyEitherF(java.util.function.Function<A,Either<L,B>> f)
modify polymorphically the target of aPTraversalwith an Applicative function
-
modifyOptionF
public abstract java.util.function.Function<S,Option<T>> modifyOptionF(java.util.function.Function<A,Option<B>> f)
modify polymorphically the target of aPTraversalwith an Applicative function
-
modifyIterableF
public abstract java.util.function.Function<S,java.lang.Iterable<T>> modifyIterableF(java.util.function.Function<A,java.lang.Iterable<B>> f)
modify polymorphically the target of aPTraversalwith an Applicative function
-
modifySupplierF
public abstract java.util.function.Function<S,java.util.function.Supplier<T>> modifySupplierF(java.util.function.Function<A,java.util.function.Supplier<B>> f)
modify polymorphically the target of aPTraversalwith an Applicative function
-
modifyPairF
public abstract java.util.function.Function<S,Pair<T,T>> modifyPairF(java.util.function.Function<A,Pair<B,B>> f)
modify polymorphically the target of aPTraversalwith an Applicative function
-
foldMap
public abstract <M> java.util.function.Function<S,M> foldMap(Monoid<M> monoid, java.util.function.Function<A,M> f)
map each target to aMonoidand combine the results
-
fold
public final java.util.function.Function<S,A> fold(Monoid<A> monoid)
combine all targets using a target'sMonoid
-
getAll
public final java.lang.Iterable<A> getAll(S s)
get all the targets of aPTraversal
-
find
public final java.util.function.Function<S,Option<A>> find(java.util.function.Predicate<A> p)
find the first target of aPTraversalmatching the predicate
-
headOption
public final Option<A> headOption(S s)
get the first target of aPTraversal
-
exist
public final java.util.function.Predicate<S> exist(java.util.function.Predicate<A> p)
check if at least one target satisfies the predicate
-
all
public final java.util.function.Predicate<S> all(java.util.function.Predicate<A> p)
check if all targets satisfy the predicate
-
modify
public final java.util.function.Function<S,T> modify(java.util.function.Function<A,B> f)
modify polymorphically the target of aPTraversalwith a function
-
set
public final java.util.function.Function<S,T> set(B b)
set polymorphically the target of aPTraversalwith a value
-
sum
public final <S1,T1> PTraversal<Either<S,S1>,Either<T,T1>,A,B> sum(PTraversal<S1,T1,A,B> other)
join twoPTraversalwith the same target
-
composeFold
public final <C> Fold<S,C> composeFold(Fold<A,C> other)
compose aPTraversalwith aFold
-
composeFold
public final <C> Fold<S,C> composeFold(Getter<A,C> other)
compose aPTraversalwith aGetter
-
composeSetter
public final <C,D> PSetter<S,T,C,D> composeSetter(PSetter<A,B,C,D> other)
compose aPTraversalwith aPSetter
-
composeTraversal
public final <C,D> PTraversal<S,T,C,D> composeTraversal(PTraversal<A,B,C,D> other)
compose aPTraversalwith aPTraversal
-
composeOptional
public final <C,D> PTraversal<S,T,C,D> composeOptional(POptional<A,B,C,D> other)
compose aPTraversalwith aPOptional
-
composePrism
public final <C,D> PTraversal<S,T,C,D> composePrism(PPrism<A,B,C,D> other)
compose aPTraversalwith aPPrism
-
composeLens
public final <C,D> PTraversal<S,T,C,D> composeLens(PLens<A,B,C,D> other)
compose aPTraversalwith aPLens
-
composeIso
public final <C,D> PTraversal<S,T,C,D> composeIso(PIso<A,B,C,D> other)
compose aPTraversalwith aPIso
-
asFold
public final Fold<S,A> asFold()
view aPTraversalas aFold
-
pId
public static <S,T> PTraversal<S,T,S,T> pId()
-
pCodiagonal
public static <S,T> PTraversal<Either<S,S>,Either<T,T>,S,T> pCodiagonal()
-
pTraversal
public static <S,T,A,B> PTraversal<S,T,A,B> pTraversal(java.util.function.Function<S,A> get1, java.util.function.Function<S,A> get2, java.util.function.BiFunction<B,B,java.util.function.Function<S,T>> set)
-
pTraversal
public static <S,T,A,B> PTraversal<S,T,A,B> pTraversal(java.util.function.Function<S,A> get1, java.util.function.Function<S,A> get2, java.util.function.Function<S,A> get3, java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<S,T>>>> set)
-
pTraversal
public static <S,T,A,B> PTraversal<S,T,A,B> pTraversal(java.util.function.Function<S,A> get1, java.util.function.Function<S,A> get2, java.util.function.Function<S,A> get3, java.util.function.Function<S,A> get4, java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<S,T>>>>> set)
-
pTraversal
public static <S,T,A,B> PTraversal<S,T,A,B> pTraversal(java.util.function.Function<S,A> get1, java.util.function.Function<S,A> get2, java.util.function.Function<S,A> get3, java.util.function.Function<S,A> get4, java.util.function.Function<S,A> get5, java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<S,T>>>>>> set)
-
pTraversal
public static <S,T,A,B> PTraversal<S,T,A,B> pTraversal(java.util.function.Function<S,A> get1, java.util.function.Function<S,A> get2, java.util.function.Function<S,A> get3, java.util.function.Function<S,A> get4, java.util.function.Function<S,A> get5, java.util.function.Function<S,A> get6, java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<B,java.util.function.Function<S,T>>>>>>> set)
-
fromCurried
private static <S,T,A,B> PTraversal<S,T,A,B> fromCurried(PTraversal<S,java.util.function.Function<B,T>,A,B> curriedTraversal, java.util.function.Function<S,A> lastGet)
-
-