public static class Xor.Secondary<ST,PT> extends java.lang.Object implements Xor<ST,PT>
Xor.Instances, Xor.Primary<ST,PT>, Xor.Secondary<ST,PT>
Value.ValueImpl<T>
Convertable.SupplierToConvertable<T>
Fn0.FunctionalOperations<R>, Fn0.SupplierKind<R>
Constructor and Description |
---|
Secondary() |
Modifier and Type | Method and Description |
---|---|
<T2,R> Xor<ST,R> |
combine(Value<? extends T2> app,
java.util.function.BiFunction<? super PT,? super T2,? extends R> fn)
Lazily combine this ApplicativeFunctor with the supplied value via the supplied BiFunction
Example
|
boolean |
equals(java.lang.Object obj) |
Xor<ST,PT> |
filter(java.util.function.Predicate<? super PT> test)
Keep only elements for which the supplied predicates hold
e.g.
|
<RT1> Xor<ST,RT1> |
flatMap(java.util.function.Function<? super PT,? extends MonadicValue<? extends RT1>> mapper)
A flattening transformation operation (@see
Optional.flatMap(Function) |
PT |
get() |
int |
hashCode() |
boolean |
isPrimary() |
boolean |
isSecondary() |
<R> Xor<ST,R> |
map(java.util.function.Function<? super PT,? extends R> fn)
Transform this functor using the supplied transformation function
|
java.lang.String |
mkString()
Returns the class name and the name of the subclass, if there is any value, the value is showed between square brackets.
|
Xor<ST,PT> |
peek(java.util.function.Consumer<? super PT> action)
Peek at the current value of this Transformable, without transforming it
|
void |
peek(java.util.function.Consumer<? super ST> stAction,
java.util.function.Consumer<? super PT> ptAction) |
<LT1> Xor<LT1,PT> |
secondaryFlatMap(java.util.function.Function<? super ST,? extends Xor<LT1,PT>> mapper)
Perform a flatMap operation on the Secondary type
|
ST |
secondaryGet() |
<R> Xor<R,PT> |
secondaryMap(java.util.function.Function<? super ST,? extends R> fn)
Always map the Secondary type of this Xor if it is present using the provided transformation function
|
Xor<ST,PT> |
secondaryPeek(java.util.function.Consumer<? super ST> action)
Peek at the Secondary type value if present
|
java.util.Optional<ST> |
secondaryToOptional() |
Xor<ST,PT> |
secondaryToPrimayFlatMap(java.util.function.Function<? super ST,? extends Xor<ST,PT>> fn)
A flatMap operation that keeps the Secondary and Primary types the same
|
Xor<ST,PT> |
secondaryToPrimayMap(java.util.function.Function<? super ST,? extends PT> fn)
If this Xor contains the Secondary type, map it's value so that it contains the Primary type
|
ReactiveSeq<ST> |
secondaryToStream() |
Value<ST> |
secondaryValue() |
Xor<PT,ST> |
swap()
Swap types so operations directly affect the current (pre-swap) Secondary type
|
Ior<ST,PT> |
toIor()
Return an Ior that can be this object or a Ior.primary or Ior.secondary
|
Maybe<PT> |
toMaybe() |
java.util.Optional<PT> |
toOptional() |
java.lang.String |
toString() |
<R> R |
visit(java.util.function.Function<? super ST,? extends R> secondary,
java.util.function.Function<? super PT,? extends R> primary)
Visitor pattern for this Ior.
|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
accumulatePrimary, accumulatePrimary, accumulatePrimary, accumulateSecondary, accumulateSecondary, accumulateSecondary, allTypeclasses, anyM, applyAny, arity, bicast, bimap, bipeek, bitrampoline, cast, coflatMap, combine, combineEager, combineToList, consumeAny, coproduct, filterNot, flatMapI, flatMapP, flatMapS, forEach2, forEach2, forEach3, forEach3, forEach4, forEach4, fromIterable, fromPublisher, isPresent, kindCokleisli, kindKleisli, liftM, list, mapM, narrowK, narrowK2, nest, nested, nestedEval, notNull, ofType, primary, product, retry, retry, secondary, sequencePrimary, sequenceSecondary, tailRec, toTrampoline, toXor, toXor, trampoline, unit, visitAny, visitAny, widen, zip, zip, zip, zip3, zip3, zip4, zip4, zipP, zipP, zipS, zipS, zipWith, zipWithP, zipWithS
apply, generate, iterate, iterator, newSubscriber, of, stream, subscribe, test, toEither, toEval, toEvalAlways, toEvalLater, toEvalNow, toLeft, toMaybeEager, toRight, toTry, toTry, toTry
endsWith, endsWithIterable, findAny, findFirst, firstValue, foldLeft, foldLeft, foldLeft, foldLeft, foldRight, foldRight, foldRight, foldRightMapToType, get, groupBy, join, join, join, mapReduce, mapReduce, print, print, printErr, printOut, reduce, reduce, reduce, reduce, reduce, reduce, reduce, schedule, scheduleFixedDelay, scheduleFixedRate, single, single, singleUnsafe, startsWith, startsWithIterable, takeOne, xMatch
collect, fromSupplier, orElse, orElseGet, orElseThrow, toCompletableFuture, toCompletableFutureAsync, toFuture, toFutureAsync, toStream, visit
public boolean isSecondary()
isSecondary
in interface Xor<ST,PT>
public boolean isPrimary()
public Xor<ST,PT> secondaryToPrimayMap(java.util.function.Function<? super ST,? extends PT> fn)
Xor
secondaryToPrimayMap
in interface Xor<ST,PT>
fn
- Function to map secondary type to primarypublic <R> Xor<R,PT> secondaryMap(java.util.function.Function<? super ST,? extends R> fn)
Xor
secondaryMap
in interface Xor<ST,PT>
fn
- Transformation function for Secondary typespublic <R> Xor<ST,R> map(java.util.function.Function<? super PT,? extends R> fn)
Transformable
of(1,2,3).map(i->i*2)
//[2,4,6]
map
in interface Transformable<PT>
map
in interface MonadicValue<PT>
map
in interface Xor<ST,PT>
fn
- Transformation functionpublic Xor<ST,PT> secondaryPeek(java.util.function.Consumer<? super ST> action)
Xor
secondaryPeek
in interface Xor<ST,PT>
action
- Consumer to peek at the Secondary type valuepublic Xor<ST,PT> peek(java.util.function.Consumer<? super PT> action)
Transformable
of(1,2,3).map(System.out::println)
1
2
3
public Xor<ST,PT> filter(java.util.function.Predicate<? super PT> test)
Filters
of(1,2,3).filter(i->i>2);
//[3]
public Xor<PT,ST> swap()
Xor
Xor.secondary("hello")
.map(v->v+" world")
//Xor.seconary["hello"]
Xor.secondary("hello")
.swap()
.map(v->v+" world")
.swap()
//Xor.seconary["hello world"]
public PT get()
public ST secondaryGet()
secondaryGet
in interface Xor<ST,PT>
public java.util.Optional<ST> secondaryToOptional()
secondaryToOptional
in interface Xor<ST,PT>
public ReactiveSeq<ST> secondaryToStream()
secondaryToStream
in interface Xor<ST,PT>
public <RT1> Xor<ST,RT1> flatMap(java.util.function.Function<? super PT,? extends MonadicValue<? extends RT1>> mapper)
MonadicValue
Optional.flatMap(Function)
Eval.now(1).map(i->i+2).flatMap(i->Eval.later(()->i*3);
//Eval[9]
public <LT1> Xor<LT1,PT> secondaryFlatMap(java.util.function.Function<? super ST,? extends Xor<LT1,PT>> mapper)
Xor
secondaryFlatMap
in interface Xor<ST,PT>
mapper
- Flattening transformation functionpublic Xor<ST,PT> secondaryToPrimayFlatMap(java.util.function.Function<? super ST,? extends Xor<ST,PT>> fn)
Xor
secondaryToPrimayFlatMap
in interface Xor<ST,PT>
fn
- Transformation functionpublic void peek(java.util.function.Consumer<? super ST> stAction, java.util.function.Consumer<? super PT> ptAction)
public <R> R visit(java.util.function.Function<? super ST,? extends R> secondary, java.util.function.Function<? super PT,? extends R> primary)
Xor
Xor.primary(10)
.visit(secondary->"no", primary->"yes")
//Xor["yes"]
Xor.secondary(90)
.visit(secondary->"no", primary->"yes")
//Xor["no"]
public java.util.Optional<PT> toOptional()
toOptional
in interface Convertable<PT>
toOptional
in interface Xor<ST,PT>
public Value<ST> secondaryValue()
secondaryValue
in interface Xor<ST,PT>
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String mkString()
Value
public Ior<ST,PT> toIor()
Value
public <T2,R> Xor<ST,R> combine(Value<? extends T2> app, java.util.function.BiFunction<? super PT,? super T2,? extends R> fn)
MonadicValue
Maybe<Integer> some = Maybe.just(10);
just.combine(Eval.now(20), this::add);
//Some[30]
Maybe<Integer> none = Maybe.none();
none.combine(Eval.now(20), this::add);
//None
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object