@Override public <X extends Throwable> Subscription forEachSubscribe(final Consumer<? super T> consumer) { StreamSubscription sub = source.subscribe(consumer, this.defaultErrorHandler, () -> { }); return sub; }
public void forEachRemaining(Consumer<? super T> action) { if(async || active) Iterator.super.forEachRemaining(action); else source.subscribeAll(action,defaultErrorHandler,()->{}); }
@Override public void forEachAsync(final Consumer<? super T> action) { if (async == Type.NO_BACKPRESSURE) source.subscribeAll(action, this.defaultErrorHandler, () -> { }); else source.subscribe(action, this.defaultErrorHandler, () -> { }).request(Long.MAX_VALUE); }
@Override public <X extends Throwable> void forEach(final Consumer<? super T> consumerElement, final Consumer<? super Throwable> consumerError) { if (async != Type.NO_BACKPRESSURE) { this.source.subscribe(consumerElement, consumerError, () -> { }).request(Long.MAX_VALUE); } else { source.subscribeAll(consumerElement, consumerError, () -> { }); } }
@Override public void subscribeAll(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Runnable onCompleteDs) { source.subscribeAll(onNext, onError, () -> { complete.run(); onCompleteDs.run(); }); }
@Override public <X extends Throwable> Subscription forEachSubscribe(final Consumer<? super T> consumer, final Consumer<? super Throwable> consumerError, final Runnable onComplete) { StreamSubscription sub = source.subscribe(consumer, consumerError, onComplete); return sub; }
@Override public <X extends Throwable> void forEach(final Consumer<? super T> consumerElement, final Consumer<? super Throwable> consumerError, final Runnable onComplete) { if (async != Type.NO_BACKPRESSURE) { this.source.subscribe(consumerElement, consumerError, onComplete).request(Long.MAX_VALUE); } else { source.subscribeAll(consumerElement, consumerError, onComplete); } }
@Override public void subscribeAll(Consumer<? super R> onNext, Consumer<? super Throwable> onError, Runnable onCompleteDs) { source.subscribeAll(e-> { try { onNext.accept(mapper.apply(e)); } catch (Throwable t) { onError.accept(t); } } ,onError,onCompleteDs); } }
@Override public <X extends Throwable> Subscription forEachSubscribe(final Consumer<? super T> consumer, final Consumer<? super Throwable> consumerError) { StreamSubscription sub = source.subscribe(consumer, consumerError, () -> { }); return sub; }
@Override public void forEachOrdered(final Consumer<? super T> consumer) { Future<Boolean> complete = Future.future(); if (async == Type.NO_BACKPRESSURE) { source.subscribeAll(consumer, this.defaultErrorHandler, () -> complete.complete(true)); } else { source.subscribe(consumer, this.defaultErrorHandler, () -> complete.complete(true)).request(Long.MAX_VALUE); } complete.get(); }
@Override public void subscribeAll(Consumer<? super R> onNext, Consumer<? super Throwable> onError, Runnable onCompleteDs) { source.subscribeAll(e-> { try { mapper.apply(e).forEach(onNext); } catch (Throwable t) { onError.accept(t); } } ,onError,onCompleteDs); } }
@Override public StreamSubscription subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Runnable onComplete) { return source.subscribe(onNext, onError, () -> { complete.run(); onComplete.run(); }); }
@Override public void forEach(final Consumer<? super T> action) { Future<Boolean> complete = Future.future(); if (async == Type.NO_BACKPRESSURE) { source.subscribeAll(action, this.defaultErrorHandler, () -> complete.complete(true)); } else { source.subscribe(action, this.defaultErrorHandler, () -> complete.complete(true)).request(Long.MAX_VALUE); } complete.get(); }
@Override public void subscribeAll(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Runnable onCompleteDs) { long[] count = {0}; source.subscribeAll(e->{ try { if (count[0]++ < skip) { } else { onNext.accept(e); } }catch(Throwable t){ onError.accept(t); } },onError,onCompleteDs); } }
@Override public StreamSubscription subscribe(Consumer<? super R> onNext, Consumer<? super Throwable> onError, Runnable onComplete) { return source.subscribe(e-> { try { onNext.accept(mapper.apply(e)); } catch (Throwable t) { onError.accept(t); } } ,onError,onComplete); }
@Override public final boolean allMatch(final Predicate<? super T> c) { Future<Boolean> result = Future.future(); if (async == Type.NO_BACKPRESSURE) { ReactiveStreamX<T> filtered = (ReactiveStreamX<T>) filter(c.negate()); filtered.source.subscribeAll(e -> { result.complete(false); throw new Queue.ClosedQueueException(); }, t -> { result.completeExceptionally(t); }, () -> { if (!result.isDone()) { result.complete(true); } }); } else { ReactiveStreamX<T> filtered = (ReactiveStreamX<T>) filter(c.negate()); filtered.source.subscribe(e -> { result.complete(false); }, t -> { result.completeExceptionally(t); }, () -> { if (!result.isDone()) { result.complete(true); } }).request(1l); } return result.getFuture().join(); }
@Override public void subscribeAll(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Runnable onCompleteDs) { Object[] buffer = {UNSET}; source.subscribeAll(e->{ try { if (buffer[0] == UNSET) { } else { onNext.accept((T)buffer[0]); } buffer[0]=e; }catch(Throwable t){ onError.accept(t); } },onError,onCompleteDs); } }
@Override public StreamSubscription subscribe(Consumer<? super R> onNext, Consumer<? super Throwable> onError, Runnable onComplete) { Function<? super T, ? extends R> mapper = mapperSupplier.get(); return source.subscribe(e-> { try { onNext.accept(mapper.apply(e)); } catch (Throwable t) { onError.accept(t); } } ,onError,onComplete); }
@Override public void subscribeAll(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Runnable onCompleteDs) { source.subscribeAll(e-> { try { if(predicate.test(e)) onNext.accept(e); } catch (Throwable t) { onError.accept(t); } } ,onError,onCompleteDs); } }
@Override public StreamSubscription subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Runnable onComplete) { boolean[] data ={ false}; return source.subscribe(e->{ if(!data[0]) data[0]=true; onNext.accept(e); } ,onError,()->{ if(data[0]==false) onError.accept(value.get()); onComplete.run(); }); }