@Override public void subscribe(Subscriber<? super Object> s) { SubscriptionHelper.complete(s); }
public static <T> void subscribeWithArray(Subscriber<? super T> s, T[] array) { if (array.length == 0) { SubscriptionHelper.complete(s); return; } if (s instanceof ConditionalSubscriber) { s.onSubscribe(new ArrayConditionalSubscription<>((ConditionalSubscriber<? super T>)s, array)); } else { s.onSubscribe(new ArraySubscription<>(s, array)); } }
@Override public void subscribe(Subscriber<? super Integer> s) { long st = start; long en = end; if (st == en) { SubscriptionHelper.complete(s); return; } else if (st + 1 == en) { s.onSubscribe(new ScalarSubscription<>(s, (int)st)); return; } if (s instanceof ConditionalSubscriber) { s.onSubscribe(new RangeSubscriptionConditional((ConditionalSubscriber<? super Integer>)s, st, en)); return; } s.onSubscribe(new RangeSubscription(s, st, en)); }
@Override public void subscribe(Subscriber<? super T> s) { if (times == 0) { SubscriptionHelper.complete(s); return; } PublisherRepeatSubscriber<T> parent = new PublisherRepeatSubscriber<>(source, s, times); s.onSubscribe(parent); if (!parent.isCancelled()) { parent.onComplete(); } }
@Override public void onComplete() { if (main == null) { if (MAIN.compareAndSet(this, null, SubscriptionHelper.cancelled())) { cancelOther(); SubscriptionHelper.complete(actual); return; } } cancel(); actual.onComplete(); } }
/** * Common method to take an Iterator as a source of values. * * @param s * @param it */ static <T> void subscribe(Subscriber<? super T> s, Iterator<? extends T> it) { if (it == null) { SubscriptionHelper.error(s, new NullPointerException("The iterator is null")); return; } boolean b; try { b = it.hasNext(); } catch (Throwable e) { SubscriptionHelper.error(s, e); return; } if (!b) { SubscriptionHelper.complete(s); return; } if (s instanceof ConditionalSubscriber) { s.onSubscribe(new IterableSubscriptionConditional<>((ConditionalSubscriber<? super T>)s, it)); } else { s.onSubscribe(new IterableSubscription<>(s, it)); } }
void otherComplete() { if (otherValue == null) { if (main == null) { if (MAIN.compareAndSet(this, null, SubscriptionHelper.cancelled())) { cancelMain(); SubscriptionHelper.complete(actual); return; } } cancelMain(); actual.onComplete(); } } }
SubscriptionHelper.complete(s); return;
SubscriptionHelper.complete(s); return;
SubscriptionHelper.complete(s); return;
@Override public void subscribe(Subscriber<? super T> s) { Publisher<? extends T>[] a = array; if (a.length == 0) { SubscriptionHelper.complete(s); return; } if (a.length == 1) { Publisher<? extends T> p = a[0]; if (p == null) { SubscriptionHelper.error(s, new NullPointerException("The single source Publisher is null")); } else { p.subscribe(s); } return; } if (delayError) { PublisherConcatArrayDelayErrorSubscriber<T> parent = new PublisherConcatArrayDelayErrorSubscriber<>(s, a); s.onSubscribe(parent); if (!parent.isCancelled()) { parent.onComplete(); } return; } PublisherConcatArraySubscriber<T> parent = new PublisherConcatArraySubscriber<>(s, a); s.onSubscribe(parent); if (!parent.isCancelled()) { parent.onComplete(); } }
SubscriptionHelper.complete(s); return;
@Test public void conditionalFusionAvailableWithFuseable() { TestSubscriber<Object> ts = new TestSubscriber<>(); Px.wrapFuseable(u -> { if (!(u instanceof Fuseable.ConditionalSubscriber)) { SubscriptionHelper.error(u, new IllegalArgumentException("The subscriber is not conditional: " + u)); } else { SubscriptionHelper.complete(u); } }).doOnNext(v -> { }).filter(v -> true).subscribe(ts); ts.assertNoError() .assertNoValues() .assertComplete(); }
@Test public void conditionalFusionAvailable() { TestSubscriber<Object> ts = new TestSubscriber<>(); Px.wrap(u -> { if (!(u instanceof Fuseable.ConditionalSubscriber)) { SubscriptionHelper.error(u, new IllegalArgumentException("The subscriber is not " + "conditional: " + u)); } else { SubscriptionHelper.complete(u); } }).doOnNext(v -> { }).filter(v -> true).subscribe(ts); ts.assertNoError() .assertNoValues() .assertComplete(); }