/** * {@inheritDoc} */ @Override public Promise<T> onFailure(Consumer< ? super Throwable> failure) { return onResolve(new OnFailure(failure)); }
/** * {@inheritDoc} */ @Override public Promise<T> onSuccess(Consumer< ? super T> success) { return onResolve(new OnSuccess(success)); }
/** * {@inheritDoc} */ @Override public Promise<T> onFailure(Consumer< ? super Throwable> failure) { return onResolve(new OnFailure(failure)); }
/** * {@inheritDoc} */ public <R> Promise<R> then(Success<? super T, ? extends R> success, Failure failure) { PromiseImpl<R> chained = new PromiseImpl<R>(); onResolve(new Then<R>(chained, success, failure)); return chained; }
/** * {@inheritDoc} */ @Override public Promise<T> filter(Predicate<? super T> predicate) { DeferredPromiseImpl<T> chained = deferred(); onResolve(chained.new Filter(this, predicate)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public <R> Promise<R> flatMap(Function<? super T, Promise<? extends R>> mapper) { DeferredPromiseImpl<R> chained = deferred(); onResolve(chained.new FlatMap<>(this, mapper)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public Promise<T> recoverWith(Function<Promise<?>, Promise<? extends T>> recovery) { DeferredPromiseImpl<T> chained = deferred(); onResolve(chained.new RecoverWith(this, recovery)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public Promise<T> fallbackTo(Promise<? extends T> fallback) { DeferredPromiseImpl<T> chained = deferred(); onResolve(chained.new FallbackTo(this, fallback)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public Promise<T> recover(Function<Promise<?>, ? extends T> recovery) { DeferredPromiseImpl<T> chained = deferred(); onResolve(chained.new Recover(this, recovery)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public Promise<T> timeout(long millis) { DeferredPromiseImpl<T> chained = deferred(); onResolve(chained.new Timeout(this, millis)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public Promise<T> delay(long millis) { DeferredPromiseImpl<T> chained = deferred(); onResolve(chained.new Delay(this, millis)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public <R> Promise<R> then(Success<? super T, ? extends R> success, Failure failure) { DeferredPromiseImpl<R> chained = deferred(); onResolve(chained.new Then<>(this, success, failure)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public <R> Promise<R> map(Function<? super T, ? extends R> mapper) { DeferredPromiseImpl<R> chained = deferred(); onResolve(chained.new Map<>(this, mapper)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public Promise<T> fallbackTo(Promise<? extends T> fallback) { DeferredPromiseImpl<T> chained = deferred(); onResolve(chained.new FallbackTo(this, fallback)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public Promise<T> delay(long millis) { DeferredPromiseImpl<T> chained = deferred(); onResolve(chained.new Delay(this, millis)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public <R> Promise<R> then(Success<? super T, ? extends R> success, Failure failure) { DeferredPromiseImpl<R> chained = deferred(); onResolve(chained.new Then<>(this, success, failure)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public Promise<T> recover(Function<Promise<?>, ? extends T> recovery) { DeferredPromiseImpl<T> chained = deferred(); onResolve(chained.new Recover(this, recovery)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public Promise<T> thenAccept(Consumer< ? super T> consumer) { DeferredPromiseImpl<T> chained = deferred(); onResolve(chained.new ThenAccept(this, consumer)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public <R> Promise<R> map(Function<? super T, ? extends R> mapper) { DeferredPromiseImpl<R> chained = deferred(); onResolve(chained.new Map<>(this, mapper)); return chained.orDone(); }
/** * {@inheritDoc} */ @Override public Promise<T> timeout(long millis) { DeferredPromiseImpl<T> chained = deferred(); onResolve(chained.new Timeout(this, millis)); return chained.orDone(); }