Package io.atlassian.fugue
Class Either.RightProjection
- java.lang.Object
-
- io.atlassian.fugue.Either.AbstractProjection<R,L>
-
- io.atlassian.fugue.Either.RightProjection
-
- All Implemented Interfaces:
Effect.Applicant<R>,Either.Projection<R,L,L,R>,Maybe<R>,java.lang.Iterable<R>
public final class Either.RightProjection extends Either.AbstractProjection<R,L> implements Either.Projection<R,L,L,R>
A right projection of an either value.
-
-
Constructor Summary
Constructors Modifier Constructor Description privateRightProjection()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description <X> Either<L,X>ap(Either<L,java.util.function.Function<R,X>> either)Function application on this projection's value.<X> Either<L,X>apply(Either<L,java.util.function.Function<R,X>> either)Deprecated.since 3.0 see ap(package private) <X> Either<X,R>as()Coerces our left type as X.<X> Option<Either<X,R>>filter(java.util.function.Predicate<? super R> f)ReturnsNoneif this projection has no value or if the given predicatepdoes not hold for the value, otherwise, returns a right inSome.Either<L,R>filterOrElse(java.util.function.Predicate<? super R> p, java.util.function.Supplier<? extends L> orElseSupplier)Return aRightif this is aRightand the contained values satisfies the given predicate.<X,LL extends L>
Either<L,X>flatMap(java.util.function.Function<? super R,Either<LL,X>> f)Binds the given function across this projection's value if it has one.Rget()Get the value if defined.booleanisDefined()If the type contains a value return true.<X> Either<L,X>map(java.util.function.Function<? super R,X> f)Map the given function across this projection's value if it has one.Ron(java.util.function.Function<? super L,? extends R> f)The value of this projection or the result of the given function on the opposing projection's value.<X> Either<L,X>sequence(Either<L,X> e)Anonymous bind through this projection.(package private) <X> Either.Left<L,X>toLeft()-
Methods inherited from class io.atlassian.fugue.Either.AbstractProjection
contains, either, exists, forall, foreach, forEach, getOr, getOrElse, getOrElse, getOrError, getOrNull, getOrThrow, isEmpty, iterator, toOption, toOptional, toStream
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.atlassian.fugue.Effect.Applicant
foreach
-
Methods inherited from interface io.atlassian.fugue.Either.Projection
either, toOption, toOptional, toStream
-
-
-
-
Method Detail
-
get
public R get()
Description copied from interface:MaybeGet the value if defined. Throw an exception otherwise.
-
isDefined
public boolean isDefined()
Description copied from interface:MaybeIf the type contains a value return true.
-
on
public R on(java.util.function.Function<? super L,? extends R> f)
Description copied from interface:Either.ProjectionThe value of this projection or the result of the given function on the opposing projection's value.
-
map
public <X> Either<L,X> map(java.util.function.Function<? super R,X> f)
Map the given function across this projection's value if it has one.- Type Parameters:
X- the RHS type- Parameters:
f- The function to map across this projection.- Returns:
- A new either value after mapping.
-
flatMap
public <X,LL extends L> Either<L,X> flatMap(java.util.function.Function<? super R,Either<LL,X>> f)
Binds the given function across this projection's value if it has one.- Type Parameters:
X- the RHS typeLL- The existing LHS or a subtype- Parameters:
f- The function to bind across this projection.- Returns:
- A new either value after binding.
-
toLeft
<X> Either.Left<L,X> toLeft()
-
sequence
public <X> Either<L,X> sequence(Either<L,X> e)
Anonymous bind through this projection.- Type Parameters:
X- the RHS type- Parameters:
e- The value to bind with.- Returns:
- An either after binding through this projection.
-
filter
public <X> Option<Either<X,R>> filter(java.util.function.Predicate<? super R> f)
ReturnsNoneif this projection has no value or if the given predicatepdoes not hold for the value, otherwise, returns a right inSome.- Type Parameters:
X- the LHS type- Parameters:
f- The predicate function to test on this projection's value.- Returns:
Noneif this projection has no value or if the given predicatepdoes not hold for the value, otherwise, returns a right inSome.
-
filterOrElse
public Either<L,R> filterOrElse(java.util.function.Predicate<? super R> p, java.util.function.Supplier<? extends L> orElseSupplier)
Return aRightif this is aRightand the contained values satisfies the given predicate. If this is aRightbut the predicate is not satisfied, return aLeftwith the value provided by the orElseSupplier. Return aLeftif this aLeftwith the contained value.- Parameters:
p- The predicate function to test on the right contained value.orElseSupplier- The supplier to execute when is a right, and predicate is unsatisfied- Returns:
- a new Either that will be either the existing left/right or a left with result of orElseSupplier
- Since:
- 4.7.0
-
ap
public <X> Either<L,X> ap(Either<L,java.util.function.Function<R,X>> either)
Function application on this projection's value.- Type Parameters:
X- the RHS type- Parameters:
either- The either of the function to apply on this projection's value.- Returns:
- The result of function application within either.
- Since:
- 3.0
-
apply
@Deprecated public <X> Either<L,X> apply(Either<L,java.util.function.Function<R,X>> either)
Deprecated.since 3.0 see apFunction application on this projection's value.- Type Parameters:
X- the RHS type- Parameters:
either- The either of the function to apply on this projection's value.- Returns:
- The result of function application within either.
-
-