T - Return type (success)X - Base Error typepublic interface Try<T,X extends java.lang.Throwable> extends java.util.function.Supplier<T>, Value<T>, ToStream<T>, Filterable<T>, Functor<T>, Applicativable<T>
| Modifier and Type | Interface and Description |
|---|---|
static interface |
Try.AndFinally<T,V,X extends java.lang.Throwable> |
static interface |
Try.CheckedConsumer<T,X extends java.lang.Throwable> |
static interface |
Try.CheckedFunction<T,R,X extends java.lang.Throwable> |
static interface |
Try.CheckedRunnable<X extends java.lang.Throwable> |
static interface |
Try.CheckedSupplier<T,X extends java.lang.Throwable> |
static class |
Try.Failure<T,X extends java.lang.Throwable>
Class that represents the Failure of a Try
|
static interface |
Try.Init<X extends java.lang.Throwable> |
static class |
Try.MyFinallyBlock<T,V,X extends java.lang.Throwable> |
static class |
Try.MyInit<X extends java.lang.Throwable> |
static class |
Try.MyTryCatch<V,X extends java.lang.Throwable> |
static class |
Try.Success<T,X extends java.lang.Throwable>
Class that represents a Successful Try
|
static interface |
Try.TryCatch<V,X extends java.lang.Throwable> |
Applicativable.Applicatives, Applicativable.SemigroupApplyer<T>Value.ValueImpl<T>Matchable.AsMatchable, Matchable.AutoCloseableMatchableIterable<TYPE>, Matchable.CheckValue1<T,R>, Matchable.CheckValue2<T1,T2,R>, Matchable.CheckValue3<T1,T2,T3,R>, Matchable.CheckValue4<T1,T2,T3,T4,R>, Matchable.CheckValue5<T1,T2,T3,T4,T5,R>, Matchable.CheckValueOpt<T,R>, Matchable.CheckValues<T,R>, Matchable.MatchableIterable<TYPE>, Matchable.MatchableObject<TYPE>, Matchable.MatchableOptional<T>, Matchable.MatchSelf<TYPE>, Matchable.MTuple1<T1>, Matchable.MTuple2<T1,T2>, Matchable.MTuple3<T1,T2,T3>, Matchable.MTuple4<T1,T2,T3,T4>, Matchable.MTuple5<T1,T2,T3,T4,T5>, Matchable.MXor<T1,T2>, Matchable.ValueAndOptionalMatcher<T>Convertable.SupplierToConvertable<T>| Modifier and Type | Method and Description |
|---|---|
AnyM<T> |
anyM() |
AnyM<X> |
anyMFailure() |
AnyM<T> |
anyMSuccess() |
default <U> Try<U,X> |
cast(java.lang.Class<U> type)
Cast all elements in a stream to a given type, possibly throwing a
ClassCastException. |
static <X extends java.lang.Throwable> |
catchExceptions(java.lang.Class<? extends X>... classes)
Fluent step builder for Try / Catch / Finally and Try with resources equivalents.
|
static <T,X extends java.lang.Throwable> |
failure(X error)
Construct a Failure instance from a throwable
|
X |
failureGet() |
Maybe<T> |
filter(java.util.function.Predicate<? super T> p) |
default Maybe<T> |
filterNot(java.util.function.Predicate<? super T> fn) |
<R> Try<R,X> |
flatMap(java.util.function.Function<? super T,? extends Try<R,X>> fn) |
Try<T,X> |
flatten()
Flatten a nested Try Structure
|
void |
forEach(java.util.function.Consumer<? super T> consumer) |
void |
forEachFailed(java.util.function.Consumer<? super X> consumer) |
T |
get() |
boolean |
isFailure() |
boolean |
isSuccess() |
default java.util.Iterator<T> |
iterator() |
<R> Try<R,X> |
map(java.util.function.Function<? super T,? extends R> fn) |
default <R> Eval<R> |
matches(java.util.function.Function<Matchable.CheckValue1<T,R>,Matchable.CheckValue1<T,R>> secondary,
java.util.function.Function<Matchable.CheckValue1<X,R>,Matchable.CheckValue1<X,R>> primary,
java.util.function.Supplier<? extends R> otherwise) |
default Maybe<T> |
notNull() |
static <T,X extends java.lang.Throwable> |
of(T value,
java.lang.Class<? extends java.lang.Throwable>... classes)
Return a Try that will catch specified exceptions when map / flatMap called
For use with liftM / liftM2 and For Comprehensions (when Try is at the top level)
|
default <U> Maybe<U> |
ofType(java.lang.Class<U> type)
Keep only those elements in a stream that are of a given type.
|
Try<T,X> |
onFail(java.lang.Class<? extends X> t,
java.util.function.Consumer<X> consumer) |
Try<T,X> |
onFail(java.util.function.Consumer<? super X> consumer) |
T |
orElse(T value)
Get the contained value or else the provided alternative
|
T |
orElseGet(java.util.function.Supplier<? extends T> value) |
default <R> Try<R,X> |
patternMatch(java.util.function.Function<Matchable.CheckValues<T,R>,Matchable.CheckValues<T,R>> case1,
java.util.function.Supplier<? extends R> otherwise)
Transform the elements of this Stream with a Pattern Matching case and default value
|
default Try<T,X> |
peek(java.util.function.Consumer<? super T> consumer) |
default Try<T,X> |
peekFailed(java.util.function.Consumer<? super X> consumer) |
Try.Success<T,X> |
recover(java.util.function.Function<? super X,? extends T> fn) |
Try<T,X> |
recoverFor(java.lang.Class<? extends X> t,
java.util.function.Function<? super X,? extends T> fn)
Recover if exception is of specified type
|
Try.Success<T,X> |
recoverWith(java.util.function.Function<? super X,? extends Try.Success<T,X>> fn)
flatMap recovery
|
Try<T,X> |
recoverWithFor(java.lang.Class<? extends X> t,
java.util.function.Function<? super X,? extends Try.Success<T,X>> fn)
FlatMap recovery function if exception is of specified type
|
static <X extends java.lang.Throwable> |
runWithCatch(Try.CheckedRunnable<X> cf,
java.lang.Class<? extends X>... classes)
Try to execute supplied Runnable and will Catch specified Excpetions or java.lang.Exception
if none specified.
|
ReactiveSeq<T> |
stream() |
static <T,X extends java.lang.Throwable> |
success(T value) |
void |
throwException()
Throw exception if Failure, do nothing if success
|
java.util.Optional<X> |
toFailedOptional() |
java.util.stream.Stream<X> |
toFailedStream() |
Ior<X,T> |
toIor() |
java.util.Optional<T> |
toOptional() |
Xor<X,T> |
toXor() |
default Xor<X,T> |
toXorWithError() |
default <R> Try<R,X> |
trampoline(java.util.function.Function<? super T,? extends Trampoline<? extends R>> mapper)
Performs a map operation that can call a recursive method without running out of stack space
|
default <T> Try<T,?> |
unit(T value) |
<R> R |
visit(java.util.function.Function<? super T,? extends R> success,
java.util.function.Function<? super X,? extends R> failure) |
static <T,X extends java.lang.Throwable> |
withCatch(Try.CheckedSupplier<T,X> cf,
java.lang.Class<? extends X>... classes)
Try to execute supplied Supplier and will Catch specified Excpetions or java.lang.Exception
if none specified.
|
getStreamable, isEmpty, jdkStream, reactiveSeq, reveresedJDKStream, reveresedStreamap, ap, ap1, ap2, ap3, ap4, ap5convertTo, convertToAsync, fold, fold, generate, getMatchable, iterate, mkString, newSubscriber, toDequeX, toEvalAlways, toEvalLater, toEvalNow, toFutureStream, toFutureStream, toLazyImmutable, toListX, toMaybe, toMutable, toPBagX, toPOrderedSetX, toPQueueX, toPSetX, toPStackX, toPVectorX, toQueueX, toSetX, toSimpleReact, toSimpleReact, toSortedSetX, toTry, toTry, unapplyfoldRight, foldRight, foldRight, foldRightMapToType, join, join, join, mapReduce, print, print, printErr, printOut, reduce, reduce, reduce, reduce, reduce, reduce, reducefrom, from, from, from, from, from, from, from, from, from, fromCharSequence, fromIterable, fromOptional, listOfValues, ofDecomposable, otherwise, otherwise, then, then, when, when, when, when, when, when, when, when, when, when, whenGuard, whenTrue, whenValuesfromSupplier, orElseThrow, toAtomicReference, toCompletableFuture, toCompletableFutureAsync, toCompletableFutureAsync, toFutureW, toList, toOptionalAtomicReference, toStream, visitdefault <R> Eval<R> matches(java.util.function.Function<Matchable.CheckValue1<T,R>,Matchable.CheckValue1<T,R>> secondary, java.util.function.Function<Matchable.CheckValue1<X,R>,Matchable.CheckValue1<X,R>> primary, java.util.function.Supplier<? extends R> otherwise)
X failureGet()
default <U> Try<U,X> cast(java.lang.Class<U> type)
FunctorClassCastException.
// ClassCastException ReactiveSeq.of(1, "a", 2, "b", 3).cast(Integer.class)default <R> Try<R,X> trampoline(java.util.function.Function<? super T,? extends Trampoline<? extends R>> mapper)
Functor
ReactiveSeq.of(10,20,30,40)
.trampoline(i-> fibonacci(i))
.forEach(System.out::println);
Trampoline<Long> fibonacci(int i){
return fibonacci(i,1,0);
}
Trampoline<Long> fibonacci(int n, long a, long b) {
return n == 0 ? Trampoline.done(b) : Trampoline.more( ()->fibonacci(n-1, a+b, a));
}
55
6765
832040
102334155
ReactiveSeq.of(10_000,200_000,3_000_000,40_000_000)
.trampoline(i-> fibonacci(i))
.forEach(System.out::println);
completes successfully
trampoline in interface Functor<T>default <U> Maybe<U> ofType(java.lang.Class<U> type)
FilterableofType in interface Filterable<T>default Maybe<T> filterNot(java.util.function.Predicate<? super T> fn)
filterNot in interface Filterable<T>default Maybe<T> notNull()
notNull in interface Filterable<T>static <T,X extends java.lang.Throwable> Try.Failure<T,X> failure(X error)
error - for Failurestatic <T,X extends java.lang.Throwable> Try.Success<T,X> success(T value)
value - Successful valuedefault <R> Try<R,X> patternMatch(java.util.function.Function<Matchable.CheckValues<T,R>,Matchable.CheckValues<T,R>> case1, java.util.function.Supplier<? extends R> otherwise)
Functor
List<String> result = CollectionX.of(1,2,3,4)
.patternMatch(
c->c.valuesWhere(i->"even", (Integer i)->i%2==0 )
)
// CollectionX["odd","even","odd","even"]
patternMatch in interface Functor<T>case1 - Function to generate a case (or chain of cases as a single case)otherwise - Value if supplied case doesn't match<R> R visit(java.util.function.Function<? super T,? extends R> success, java.util.function.Function<? super X,? extends R> failure)
T get()
get in interface Convertable<T>get in interface java.util.function.Supplier<T>void throwException()
T orElse(T value)
ConvertableorElse in interface Convertable<T>value - Return value supplied if Failure, otherwise return Success valueT orElseGet(java.util.function.Supplier<? extends T> value)
orElseGet in interface Convertable<T>value - from supplied Supplier if Failure otherwise return Success value<R> Try<R,X> flatMap(java.util.function.Function<? super T,? extends Try<R,X>> fn)
fn - FlatMap success value or Do nothing if Failure (return this)Maybe<T> filter(java.util.function.Predicate<? super T> p)
filter in interface Filterable<T>p - Convert a Success to a Failure (with a null value for Exception) if predicate does not hold.
Do nothing to a FailureTry<T,X> onFail(java.util.function.Consumer<? super X> consumer)
consumer - Accept Exception if present (Failure)Try<T,X> onFail(java.lang.Class<? extends X> t, java.util.function.Consumer<X> consumer)
t - Class type of match Exception againstconsumer - Accept Exception if present (Failure) and if class types matchTry.Success<T,X> recover(java.util.function.Function<? super X,? extends T> fn)
fn - Recovery function - map from a failure to a Success.Try.Success<T,X> recoverWith(java.util.function.Function<? super X,? extends Try.Success<T,X>> fn)
fn - Recovery FlatMap function. Map from a failure to a SuccessTry<T,X> recoverFor(java.lang.Class<? extends X> t, java.util.function.Function<? super X,? extends T> fn)
t - Type of exception to match againstfn - Recovery functionTry<T,X> recoverWithFor(java.lang.Class<? extends X> t, java.util.function.Function<? super X,? extends Try.Success<T,X>> fn)
t - Type of exception to match againstfn - Recovery FlatMap function. Map from a failure to a Successjava.util.Optional<T> toOptional()
toOptional in interface Convertable<T>ReactiveSeq<T> stream()
java.util.Optional<X> toFailedOptional()
java.util.stream.Stream<X> toFailedStream()
boolean isSuccess()
boolean isFailure()
void forEach(java.util.function.Consumer<? super T> consumer)
forEach in interface java.lang.Iterable<T>consumer - Accept value if Success / not called on Failurevoid forEachFailed(java.util.function.Consumer<? super X> consumer)
consumer - Accept value if Failure / not called on Failuredefault Try<T,X> peekFailed(java.util.function.Consumer<? super X> consumer)
consumer - Accept Exception if Failuredefault java.util.Iterator<T> iterator()
@SafeVarargs static <T,X extends java.lang.Throwable> Try<T,X> of(T value, java.lang.Class<? extends java.lang.Throwable>... classes)
value - Initial valueclasses - Exceptions to catch during map / flatMap@SafeVarargs static <T,X extends java.lang.Throwable> Try<T,X> withCatch(Try.CheckedSupplier<T,X> cf, java.lang.Class<? extends X>... classes)
cf - CheckedSupplier to attempt to executeclasses - Exception types to catch (or java.lang.Exception if none specified)@SafeVarargs static <X extends java.lang.Throwable> Try<java.lang.Void,X> runWithCatch(Try.CheckedRunnable<X> cf, java.lang.Class<? extends X>... classes)
cf - CheckedRunnable to attempt to executeclasses - Exception types to catch (or java.lang.Exception if none specified)@SafeVarargs static <X extends java.lang.Throwable> Try.Init<X> catchExceptions(java.lang.Class<? extends X>... classes)
classes - Exception types to catch