From da4e67f7949bdf481fff622c20f670e8bf5afb77 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Wed, 6 Sep 2017 15:40:27 -0700 Subject: [PATCH 01/10] Implement HasDefaultErrorConsumer Followup from #5569, and allows you to introspect if the resulting observer has missing error consumption and subsequently supplies a default (throwing) one. --- .../internal/observers/LambdaObserver.java | 10 +++++++++- .../observers/HasDefaultErrorConsumer.java | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/main/java/io/reactivex/observers/HasDefaultErrorConsumer.java diff --git a/src/main/java/io/reactivex/internal/observers/LambdaObserver.java b/src/main/java/io/reactivex/internal/observers/LambdaObserver.java index 9f06ecac75..9cf0e78fae 100644 --- a/src/main/java/io/reactivex/internal/observers/LambdaObserver.java +++ b/src/main/java/io/reactivex/internal/observers/LambdaObserver.java @@ -20,9 +20,12 @@ import io.reactivex.exceptions.*; import io.reactivex.functions.*; import io.reactivex.internal.disposables.DisposableHelper; +import io.reactivex.internal.functions.Functions; +import io.reactivex.observers.HasDefaultErrorConsumer; import io.reactivex.plugins.RxJavaPlugins; -public final class LambdaObserver extends AtomicReference implements Observer, Disposable { +public final class LambdaObserver extends AtomicReference + implements Observer, Disposable, HasDefaultErrorConsumer { private static final long serialVersionUID = -7251123623727029452L; final Consumer onNext; @@ -101,4 +104,9 @@ public void dispose() { public boolean isDisposed() { return get() == DisposableHelper.DISPOSED; } + + @Override + public boolean hasMissingErrorConsumer() { + return onError == Functions.ON_ERROR_MISSING; + } } diff --git a/src/main/java/io/reactivex/observers/HasDefaultErrorConsumer.java b/src/main/java/io/reactivex/observers/HasDefaultErrorConsumer.java new file mode 100644 index 0000000000..dde1794035 --- /dev/null +++ b/src/main/java/io/reactivex/observers/HasDefaultErrorConsumer.java @@ -0,0 +1,18 @@ +package io.reactivex.observers; + +import io.reactivex.annotations.Experimental; + +/** + * An interface that indicates that the implementing type has default implementations for error consumption. + */ +@Experimental +public interface HasDefaultErrorConsumer { + + /** + * @return {@code true} if the implementation is missing an error consumer and thus using a throwing default + * implementation. Returns {@code false} if a concrete error consumer implementation was supplied. + */ + @Experimental + boolean hasMissingErrorConsumer(); + +} From ded2448e24da2c016d406056466a0144ffc64daf Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Wed, 6 Sep 2017 15:51:34 -0700 Subject: [PATCH 02/10] Add `@since` --- .../java/io/reactivex/observers/HasDefaultErrorConsumer.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/io/reactivex/observers/HasDefaultErrorConsumer.java b/src/main/java/io/reactivex/observers/HasDefaultErrorConsumer.java index dde1794035..e25e20a4fd 100644 --- a/src/main/java/io/reactivex/observers/HasDefaultErrorConsumer.java +++ b/src/main/java/io/reactivex/observers/HasDefaultErrorConsumer.java @@ -4,6 +4,8 @@ /** * An interface that indicates that the implementing type has default implementations for error consumption. + * + * @since 2.1.4 - experimental */ @Experimental public interface HasDefaultErrorConsumer { From 3f15c2402d57caa404248444af16648fe8613583 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Wed, 6 Sep 2017 16:00:44 -0700 Subject: [PATCH 03/10] Add tests --- .../observers/LambdaObserverTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java b/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java index d28a92be4b..0d347919b8 100644 --- a/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java +++ b/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java @@ -17,6 +17,7 @@ import java.util.*; +import io.reactivex.internal.functions.Functions; import org.junit.Test; import io.reactivex.Observable; @@ -342,4 +343,24 @@ public void accept(Disposable s) throws Exception { assertTrue(errors.toString(), errors.get(0) instanceof TestException); } + + @Test + public void hasMissingErrorConsumer() { + LambdaObserver o = new LambdaObserver(Functions.emptyConsumer(), + Functions.ON_ERROR_MISSING, + Functions.EMPTY_ACTION, + Functions.emptyConsumer()); + + assertTrue(o.hasMissingErrorConsumer()); + } + + @Test + public void isNotMissingErrorConsumer() { + LambdaObserver o = new LambdaObserver(Functions.emptyConsumer(), + Functions.emptyConsumer(), + Functions.EMPTY_ACTION, + Functions.emptyConsumer()); + + assertFalse(o.hasMissingErrorConsumer()); + } } From e3882c6a6fbbff95d5ddc451dfd6aec08b5f6392 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Thu, 7 Sep 2017 16:42:25 -0700 Subject: [PATCH 04/10] Add support in relevant completable observers --- .../CallbackCompletableObserver.java | 9 ++++++- .../observers/EmptyCompletableObserver.java | 7 +++++- .../CallbackCompletableObserverTest.java | 25 +++++++++++++++++++ .../EmptyCompletableObserverTest.java | 15 +++++++++++ 4 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java create mode 100644 src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java diff --git a/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java b/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java index cfb758552a..1af2f62c9a 100644 --- a/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java +++ b/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java @@ -20,10 +20,12 @@ import io.reactivex.exceptions.*; import io.reactivex.functions.*; import io.reactivex.internal.disposables.DisposableHelper; +import io.reactivex.observers.HasDefaultErrorConsumer; import io.reactivex.plugins.RxJavaPlugins; public final class CallbackCompletableObserver -extends AtomicReference implements CompletableObserver, Disposable, Consumer { +extends AtomicReference + implements CompletableObserver, Disposable, Consumer, HasDefaultErrorConsumer { private static final long serialVersionUID = -4361286194466301354L; @@ -82,4 +84,9 @@ public void dispose() { public boolean isDisposed() { return get() == DisposableHelper.DISPOSED; } + + @Override + public boolean hasMissingErrorConsumer() { + return onError == this; + } } diff --git a/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java b/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java index 64e295566c..68429a1fb9 100644 --- a/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java +++ b/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java @@ -19,11 +19,12 @@ import io.reactivex.disposables.Disposable; import io.reactivex.exceptions.OnErrorNotImplementedException; import io.reactivex.internal.disposables.DisposableHelper; +import io.reactivex.observers.HasDefaultErrorConsumer; import io.reactivex.plugins.RxJavaPlugins; public final class EmptyCompletableObserver extends AtomicReference -implements CompletableObserver, Disposable { +implements CompletableObserver, Disposable, HasDefaultErrorConsumer { private static final long serialVersionUID = -7545121636549663526L; @@ -55,4 +56,8 @@ public void onSubscribe(Disposable d) { DisposableHelper.setOnce(this, d); } + @Override + public boolean hasMissingErrorConsumer() { + return true; + } } diff --git a/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java b/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java new file mode 100644 index 0000000000..2edceed70e --- /dev/null +++ b/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java @@ -0,0 +1,25 @@ +package io.reactivex.internal.observers; + +import io.reactivex.internal.functions.Functions; +import org.junit.Test; + +import static org.junit.Assert.*; + +public final class CallbackCompletableObserverTest { + + @Test + public void hasMissingErrorConsumer() { + CallbackCompletableObserver o = new CallbackCompletableObserver(Functions.EMPTY_ACTION); + + assertTrue(o.hasMissingErrorConsumer()); + } + + @Test + public void isNotMissingErrorConsumer() { + CallbackCompletableObserver o = new CallbackCompletableObserver(Functions.emptyConsumer(), + Functions.EMPTY_ACTION); + + assertFalse(o.hasMissingErrorConsumer()); + } + +} diff --git a/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java b/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java new file mode 100644 index 0000000000..3567a66811 --- /dev/null +++ b/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java @@ -0,0 +1,15 @@ +package io.reactivex.internal.observers; + +import org.junit.Test; + +import static org.junit.Assert.assertTrue; + +public final class EmptyCompletableObserverTest { + + @Test + public void hasMissingErrorConsumer() { + EmptyCompletableObserver o = new EmptyCompletableObserver(); + + assertTrue(o.hasMissingErrorConsumer()); + } +} From b4f15098dc37b047b2a862a047e3a15fdd45d895 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Thu, 7 Sep 2017 16:46:11 -0700 Subject: [PATCH 05/10] Add support in ConsumerSingleObserver --- .../observers/ConsumerSingleObserver.java | 9 ++++++- .../observers/ConsumerSingleObserverTest.java | 26 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java diff --git a/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java b/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java index 525543838e..c1e251bd29 100644 --- a/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java +++ b/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java @@ -20,11 +20,13 @@ import io.reactivex.exceptions.*; import io.reactivex.functions.Consumer; import io.reactivex.internal.disposables.*; +import io.reactivex.internal.functions.Functions; +import io.reactivex.observers.HasDefaultErrorConsumer; import io.reactivex.plugins.RxJavaPlugins; public final class ConsumerSingleObserver extends AtomicReference -implements SingleObserver, Disposable { +implements SingleObserver, Disposable, HasDefaultErrorConsumer { private static final long serialVersionUID = -7012088219455310787L; @@ -74,4 +76,9 @@ public void dispose() { public boolean isDisposed() { return get() == DisposableHelper.DISPOSED; } + + @Override + public boolean hasMissingErrorConsumer() { + return onError == Functions.ON_ERROR_MISSING; + } } diff --git a/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java b/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java new file mode 100644 index 0000000000..34124f28d7 --- /dev/null +++ b/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java @@ -0,0 +1,26 @@ +package io.reactivex.internal.observers; + +import io.reactivex.internal.functions.Functions; +import org.junit.Test; + +import static org.junit.Assert.*; + +public final class ConsumerSingleObserverTest { + + @Test + public void hasMissingErrorConsumer() { + ConsumerSingleObserver o = new ConsumerSingleObserver(Functions.emptyConsumer(), + Functions.ON_ERROR_MISSING); + + assertTrue(o.hasMissingErrorConsumer()); + } + + @Test + public void isNotMissingErrorConsumer() { + ConsumerSingleObserver o = new ConsumerSingleObserver(Functions.emptyConsumer(), + Functions.emptyConsumer()); + + assertFalse(o.hasMissingErrorConsumer()); + } + +} From 8d491ebe4d6baa69b03978b1947b9e9eb8f6b6d8 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Thu, 7 Sep 2017 16:47:10 -0700 Subject: [PATCH 06/10] Add support in MaybeCallbackObserverTest --- .../maybe/MaybeCallbackObserver.java | 9 ++++-- .../maybe/MaybeCallbackObserverTest.java | 29 +++++++++++++++---- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java b/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java index 6b440732f4..db49f0a486 100644 --- a/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java +++ b/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java @@ -20,6 +20,8 @@ import io.reactivex.exceptions.*; import io.reactivex.functions.*; import io.reactivex.internal.disposables.DisposableHelper; +import io.reactivex.internal.functions.Functions; +import io.reactivex.observers.HasDefaultErrorConsumer; import io.reactivex.plugins.RxJavaPlugins; /** @@ -29,7 +31,7 @@ */ public final class MaybeCallbackObserver extends AtomicReference -implements MaybeObserver, Disposable { +implements MaybeObserver, Disposable, HasDefaultErrorConsumer { private static final long serialVersionUID = -6076952298809384986L; @@ -96,5 +98,8 @@ public void onComplete() { } } - + @Override + public boolean hasMissingErrorConsumer() { + return onError == Functions.ON_ERROR_MISSING; + } } diff --git a/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java b/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java index 5a85c2f69d..2553ddc78f 100644 --- a/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java +++ b/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java @@ -13,18 +13,17 @@ package io.reactivex.internal.operators.maybe; -import static org.junit.Assert.*; - -import java.util.List; - -import org.junit.Test; - import io.reactivex.TestHelper; import io.reactivex.disposables.*; import io.reactivex.exceptions.*; import io.reactivex.functions.*; import io.reactivex.internal.functions.Functions; import io.reactivex.plugins.RxJavaPlugins; +import org.junit.Test; + +import java.util.List; + +import static org.junit.Assert.*; public class MaybeCallbackObserverTest { @@ -121,4 +120,22 @@ public void run() throws Exception { RxJavaPlugins.reset(); } } + + @Test + public void hasMissingErrorConsumer() { + MaybeCallbackObserver o = new MaybeCallbackObserver(Functions.emptyConsumer(), + Functions.ON_ERROR_MISSING, + Functions.EMPTY_ACTION); + + assertTrue(o.hasMissingErrorConsumer()); + } + + @Test + public void isNotMissingErrorConsumer() { + MaybeCallbackObserver o = new MaybeCallbackObserver(Functions.emptyConsumer(), + Functions.emptyConsumer(), + Functions.EMPTY_ACTION); + + assertFalse(o.hasMissingErrorConsumer()); + } } From 4555b47e3e3647957274a77f04979ea924adc032 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Thu, 7 Sep 2017 16:49:14 -0700 Subject: [PATCH 07/10] Add support in LambdaSubscriber --- .../subscribers/LambdaSubscriber.java | 10 +++++- .../subscribers/LambdaSubscriberTest.java | 35 +++++++++++++++---- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java b/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java index 0d9d0b1cf9..fc8302054a 100644 --- a/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java +++ b/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java @@ -15,6 +15,8 @@ import java.util.concurrent.atomic.AtomicReference; +import io.reactivex.internal.functions.Functions; +import io.reactivex.observers.HasDefaultErrorConsumer; import org.reactivestreams.Subscription; import io.reactivex.FlowableSubscriber; @@ -24,7 +26,8 @@ import io.reactivex.internal.subscriptions.SubscriptionHelper; import io.reactivex.plugins.RxJavaPlugins; -public final class LambdaSubscriber extends AtomicReference implements FlowableSubscriber, Subscription, Disposable { +public final class LambdaSubscriber extends AtomicReference + implements FlowableSubscriber, Subscription, Disposable, HasDefaultErrorConsumer { private static final long serialVersionUID = -7251123623727029452L; final Consumer onNext; @@ -115,4 +118,9 @@ public void request(long n) { public void cancel() { SubscriptionHelper.cancel(this); } + + @Override + public boolean hasMissingErrorConsumer() { + return onError == Functions.ON_ERROR_MISSING; + } } diff --git a/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java b/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java index 4666e77569..516e1fae2d 100644 --- a/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java +++ b/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java @@ -13,19 +13,20 @@ package io.reactivex.internal.subscribers; -import static org.junit.Assert.*; - -import java.util.*; - -import org.junit.Test; -import org.reactivestreams.*; - import io.reactivex.*; import io.reactivex.exceptions.*; import io.reactivex.functions.*; +import io.reactivex.internal.functions.Functions; +import io.reactivex.internal.operators.flowable.FlowableInternalHelper; import io.reactivex.internal.subscriptions.BooleanSubscription; import io.reactivex.plugins.RxJavaPlugins; import io.reactivex.processors.PublishProcessor; +import org.junit.Test; +import org.reactivestreams.*; + +import java.util.*; + +import static org.junit.Assert.*; public class LambdaSubscriberTest { @@ -347,4 +348,24 @@ public void accept(Subscription s) throws Exception { assertTrue(errors.toString(), errors.get(0) instanceof TestException); } + + @Test + public void hasMissingErrorConsumer() { + LambdaSubscriber o = new LambdaSubscriber(Functions.emptyConsumer(), + Functions.ON_ERROR_MISSING, + Functions.EMPTY_ACTION, + FlowableInternalHelper.RequestMax.INSTANCE); + + assertTrue(o.hasMissingErrorConsumer()); + } + + @Test + public void isNotMissingErrorConsumer() { + LambdaSubscriber o = new LambdaSubscriber(Functions.emptyConsumer(), + Functions.emptyConsumer(), + Functions.EMPTY_ACTION, + FlowableInternalHelper.RequestMax.INSTANCE); + + assertFalse(o.hasMissingErrorConsumer()); + } } From e2d06c029d1a881f8c02709beef5a75c8b7b7c46 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Fri, 8 Sep 2017 19:14:31 -0700 Subject: [PATCH 08/10] Switch to CompositeObserver and onErrorImplemented() --- .../CallbackCompletableObserver.java | 6 ++--- .../observers/ConsumerSingleObserver.java | 6 ++--- .../observers/EmptyCompletableObserver.java | 6 ++--- .../internal/observers/LambdaObserver.java | 6 ++--- .../maybe/MaybeCallbackObserver.java | 6 ++--- .../subscribers/LambdaSubscriber.java | 6 ++--- .../observers/CompositeObserver.java | 23 +++++++++++++++++++ .../observers/HasDefaultErrorConsumer.java | 20 ---------------- .../CallbackCompletableObserverTest.java | 4 ++-- .../observers/ConsumerSingleObserverTest.java | 4 ++-- .../EmptyCompletableObserverTest.java | 2 +- .../observers/LambdaObserverTest.java | 4 ++-- .../maybe/MaybeCallbackObserverTest.java | 4 ++-- .../subscribers/LambdaSubscriberTest.java | 4 ++-- 14 files changed, 52 insertions(+), 49 deletions(-) create mode 100644 src/main/java/io/reactivex/observers/CompositeObserver.java delete mode 100644 src/main/java/io/reactivex/observers/HasDefaultErrorConsumer.java diff --git a/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java b/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java index 1af2f62c9a..1ad562398d 100644 --- a/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java +++ b/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java @@ -20,12 +20,12 @@ import io.reactivex.exceptions.*; import io.reactivex.functions.*; import io.reactivex.internal.disposables.DisposableHelper; -import io.reactivex.observers.HasDefaultErrorConsumer; +import io.reactivex.observers.CompositeObserver; import io.reactivex.plugins.RxJavaPlugins; public final class CallbackCompletableObserver extends AtomicReference - implements CompletableObserver, Disposable, Consumer, HasDefaultErrorConsumer { + implements CompletableObserver, Disposable, Consumer, CompositeObserver { private static final long serialVersionUID = -4361286194466301354L; @@ -86,7 +86,7 @@ public boolean isDisposed() { } @Override - public boolean hasMissingErrorConsumer() { + public boolean onErrorImplemented() { return onError == this; } } diff --git a/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java b/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java index c1e251bd29..89162dcd6f 100644 --- a/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java +++ b/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java @@ -21,12 +21,12 @@ import io.reactivex.functions.Consumer; import io.reactivex.internal.disposables.*; import io.reactivex.internal.functions.Functions; -import io.reactivex.observers.HasDefaultErrorConsumer; +import io.reactivex.observers.CompositeObserver; import io.reactivex.plugins.RxJavaPlugins; public final class ConsumerSingleObserver extends AtomicReference -implements SingleObserver, Disposable, HasDefaultErrorConsumer { +implements SingleObserver, Disposable, CompositeObserver { private static final long serialVersionUID = -7012088219455310787L; @@ -78,7 +78,7 @@ public boolean isDisposed() { } @Override - public boolean hasMissingErrorConsumer() { + public boolean onErrorImplemented() { return onError == Functions.ON_ERROR_MISSING; } } diff --git a/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java b/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java index 68429a1fb9..ad4ae85a99 100644 --- a/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java +++ b/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java @@ -19,12 +19,12 @@ import io.reactivex.disposables.Disposable; import io.reactivex.exceptions.OnErrorNotImplementedException; import io.reactivex.internal.disposables.DisposableHelper; -import io.reactivex.observers.HasDefaultErrorConsumer; +import io.reactivex.observers.CompositeObserver; import io.reactivex.plugins.RxJavaPlugins; public final class EmptyCompletableObserver extends AtomicReference -implements CompletableObserver, Disposable, HasDefaultErrorConsumer { +implements CompletableObserver, Disposable, CompositeObserver { private static final long serialVersionUID = -7545121636549663526L; @@ -57,7 +57,7 @@ public void onSubscribe(Disposable d) { } @Override - public boolean hasMissingErrorConsumer() { + public boolean onErrorImplemented() { return true; } } diff --git a/src/main/java/io/reactivex/internal/observers/LambdaObserver.java b/src/main/java/io/reactivex/internal/observers/LambdaObserver.java index 9cf0e78fae..7bb7c8f708 100644 --- a/src/main/java/io/reactivex/internal/observers/LambdaObserver.java +++ b/src/main/java/io/reactivex/internal/observers/LambdaObserver.java @@ -21,11 +21,11 @@ import io.reactivex.functions.*; import io.reactivex.internal.disposables.DisposableHelper; import io.reactivex.internal.functions.Functions; -import io.reactivex.observers.HasDefaultErrorConsumer; +import io.reactivex.observers.CompositeObserver; import io.reactivex.plugins.RxJavaPlugins; public final class LambdaObserver extends AtomicReference - implements Observer, Disposable, HasDefaultErrorConsumer { + implements Observer, Disposable, CompositeObserver { private static final long serialVersionUID = -7251123623727029452L; final Consumer onNext; @@ -106,7 +106,7 @@ public boolean isDisposed() { } @Override - public boolean hasMissingErrorConsumer() { + public boolean onErrorImplemented() { return onError == Functions.ON_ERROR_MISSING; } } diff --git a/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java b/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java index db49f0a486..e5486f57fe 100644 --- a/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java +++ b/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java @@ -21,7 +21,7 @@ import io.reactivex.functions.*; import io.reactivex.internal.disposables.DisposableHelper; import io.reactivex.internal.functions.Functions; -import io.reactivex.observers.HasDefaultErrorConsumer; +import io.reactivex.observers.CompositeObserver; import io.reactivex.plugins.RxJavaPlugins; /** @@ -31,7 +31,7 @@ */ public final class MaybeCallbackObserver extends AtomicReference -implements MaybeObserver, Disposable, HasDefaultErrorConsumer { +implements MaybeObserver, Disposable, CompositeObserver { private static final long serialVersionUID = -6076952298809384986L; @@ -99,7 +99,7 @@ public void onComplete() { } @Override - public boolean hasMissingErrorConsumer() { + public boolean onErrorImplemented() { return onError == Functions.ON_ERROR_MISSING; } } diff --git a/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java b/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java index fc8302054a..2ff33564e9 100644 --- a/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java +++ b/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java @@ -16,7 +16,7 @@ import java.util.concurrent.atomic.AtomicReference; import io.reactivex.internal.functions.Functions; -import io.reactivex.observers.HasDefaultErrorConsumer; +import io.reactivex.observers.CompositeObserver; import org.reactivestreams.Subscription; import io.reactivex.FlowableSubscriber; @@ -27,7 +27,7 @@ import io.reactivex.plugins.RxJavaPlugins; public final class LambdaSubscriber extends AtomicReference - implements FlowableSubscriber, Subscription, Disposable, HasDefaultErrorConsumer { + implements FlowableSubscriber, Subscription, Disposable, CompositeObserver { private static final long serialVersionUID = -7251123623727029452L; final Consumer onNext; @@ -120,7 +120,7 @@ public void cancel() { } @Override - public boolean hasMissingErrorConsumer() { + public boolean onErrorImplemented() { return onError == Functions.ON_ERROR_MISSING; } } diff --git a/src/main/java/io/reactivex/observers/CompositeObserver.java b/src/main/java/io/reactivex/observers/CompositeObserver.java new file mode 100644 index 0000000000..a3a31d9fd8 --- /dev/null +++ b/src/main/java/io/reactivex/observers/CompositeObserver.java @@ -0,0 +1,23 @@ +package io.reactivex.observers; + +import io.reactivex.annotations.Experimental; + +/** + * An interface that indicates that the implementing type is composed of individual components and exposes information + * about their behavior. + * + *

NOTE: This is considered a read-only public API and is not intended to be implemented by consumers. + * + * @since 2.1.4 - experimental + */ +@Experimental +public interface CompositeObserver { + + /** + * @return {@code true} if a concrete error consumer implementation was supplied. Returns {@code false} if the + * implementation is missing an error consumer and thus using a throwing default implementation. + */ + @Experimental + boolean onErrorImplemented(); + +} diff --git a/src/main/java/io/reactivex/observers/HasDefaultErrorConsumer.java b/src/main/java/io/reactivex/observers/HasDefaultErrorConsumer.java deleted file mode 100644 index e25e20a4fd..0000000000 --- a/src/main/java/io/reactivex/observers/HasDefaultErrorConsumer.java +++ /dev/null @@ -1,20 +0,0 @@ -package io.reactivex.observers; - -import io.reactivex.annotations.Experimental; - -/** - * An interface that indicates that the implementing type has default implementations for error consumption. - * - * @since 2.1.4 - experimental - */ -@Experimental -public interface HasDefaultErrorConsumer { - - /** - * @return {@code true} if the implementation is missing an error consumer and thus using a throwing default - * implementation. Returns {@code false} if a concrete error consumer implementation was supplied. - */ - @Experimental - boolean hasMissingErrorConsumer(); - -} diff --git a/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java b/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java index 2edceed70e..acf74911de 100644 --- a/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java +++ b/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java @@ -11,7 +11,7 @@ public final class CallbackCompletableObserverTest { public void hasMissingErrorConsumer() { CallbackCompletableObserver o = new CallbackCompletableObserver(Functions.EMPTY_ACTION); - assertTrue(o.hasMissingErrorConsumer()); + assertTrue(o.onErrorImplemented()); } @Test @@ -19,7 +19,7 @@ public void isNotMissingErrorConsumer() { CallbackCompletableObserver o = new CallbackCompletableObserver(Functions.emptyConsumer(), Functions.EMPTY_ACTION); - assertFalse(o.hasMissingErrorConsumer()); + assertFalse(o.onErrorImplemented()); } } diff --git a/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java b/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java index 34124f28d7..7fd7fe5c96 100644 --- a/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java +++ b/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java @@ -12,7 +12,7 @@ public void hasMissingErrorConsumer() { ConsumerSingleObserver o = new ConsumerSingleObserver(Functions.emptyConsumer(), Functions.ON_ERROR_MISSING); - assertTrue(o.hasMissingErrorConsumer()); + assertTrue(o.onErrorImplemented()); } @Test @@ -20,7 +20,7 @@ public void isNotMissingErrorConsumer() { ConsumerSingleObserver o = new ConsumerSingleObserver(Functions.emptyConsumer(), Functions.emptyConsumer()); - assertFalse(o.hasMissingErrorConsumer()); + assertFalse(o.onErrorImplemented()); } } diff --git a/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java b/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java index 3567a66811..bd8d696aa0 100644 --- a/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java +++ b/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java @@ -10,6 +10,6 @@ public final class EmptyCompletableObserverTest { public void hasMissingErrorConsumer() { EmptyCompletableObserver o = new EmptyCompletableObserver(); - assertTrue(o.hasMissingErrorConsumer()); + assertTrue(o.onErrorImplemented()); } } diff --git a/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java b/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java index 0d347919b8..4d7ac21bac 100644 --- a/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java +++ b/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java @@ -351,7 +351,7 @@ public void hasMissingErrorConsumer() { Functions.EMPTY_ACTION, Functions.emptyConsumer()); - assertTrue(o.hasMissingErrorConsumer()); + assertTrue(o.onErrorImplemented()); } @Test @@ -361,6 +361,6 @@ public void isNotMissingErrorConsumer() { Functions.EMPTY_ACTION, Functions.emptyConsumer()); - assertFalse(o.hasMissingErrorConsumer()); + assertFalse(o.onErrorImplemented()); } } diff --git a/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java b/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java index 2553ddc78f..79c7271d1a 100644 --- a/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java +++ b/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java @@ -127,7 +127,7 @@ public void hasMissingErrorConsumer() { Functions.ON_ERROR_MISSING, Functions.EMPTY_ACTION); - assertTrue(o.hasMissingErrorConsumer()); + assertTrue(o.onErrorImplemented()); } @Test @@ -136,6 +136,6 @@ public void isNotMissingErrorConsumer() { Functions.emptyConsumer(), Functions.EMPTY_ACTION); - assertFalse(o.hasMissingErrorConsumer()); + assertFalse(o.onErrorImplemented()); } } diff --git a/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java b/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java index 516e1fae2d..d64dbe62b5 100644 --- a/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java +++ b/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java @@ -356,7 +356,7 @@ public void hasMissingErrorConsumer() { Functions.EMPTY_ACTION, FlowableInternalHelper.RequestMax.INSTANCE); - assertTrue(o.hasMissingErrorConsumer()); + assertTrue(o.onErrorImplemented()); } @Test @@ -366,6 +366,6 @@ public void isNotMissingErrorConsumer() { Functions.EMPTY_ACTION, FlowableInternalHelper.RequestMax.INSTANCE); - assertFalse(o.hasMissingErrorConsumer()); + assertFalse(o.onErrorImplemented()); } } From bae194c93bab2324527a4a15efb554bf9d4c8536 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Sat, 9 Sep 2017 18:00:58 -0700 Subject: [PATCH 09/10] Update wording to use Introspection --- .../internal/observers/CallbackCompletableObserver.java | 6 +++--- .../internal/observers/ConsumerSingleObserver.java | 6 +++--- .../internal/observers/EmptyCompletableObserver.java | 6 +++--- .../io/reactivex/internal/observers/LambdaObserver.java | 6 +++--- .../internal/operators/maybe/MaybeCallbackObserver.java | 6 +++--- .../reactivex/internal/subscribers/LambdaSubscriber.java | 6 +++--- ...siteObserver.java => LambdaConsumerIntrospection.java} | 8 ++++---- .../observers/CallbackCompletableObserverTest.java | 4 ++-- .../internal/observers/ConsumerSingleObserverTest.java | 4 ++-- .../internal/observers/EmptyCompletableObserverTest.java | 2 +- .../reactivex/internal/observers/LambdaObserverTest.java | 4 ++-- .../operators/maybe/MaybeCallbackObserverTest.java | 4 ++-- .../internal/subscribers/LambdaSubscriberTest.java | 4 ++-- 13 files changed, 33 insertions(+), 33 deletions(-) rename src/main/java/io/reactivex/observers/{CompositeObserver.java => LambdaConsumerIntrospection.java} (73%) diff --git a/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java b/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java index 1ad562398d..c09d4df14a 100644 --- a/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java +++ b/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java @@ -20,12 +20,12 @@ import io.reactivex.exceptions.*; import io.reactivex.functions.*; import io.reactivex.internal.disposables.DisposableHelper; -import io.reactivex.observers.CompositeObserver; +import io.reactivex.observers.LambdaConsumerIntrospection; import io.reactivex.plugins.RxJavaPlugins; public final class CallbackCompletableObserver extends AtomicReference - implements CompletableObserver, Disposable, Consumer, CompositeObserver { + implements CompletableObserver, Disposable, Consumer, LambdaConsumerIntrospection { private static final long serialVersionUID = -4361286194466301354L; @@ -86,7 +86,7 @@ public boolean isDisposed() { } @Override - public boolean onErrorImplemented() { + public boolean hasCustomOnError() { return onError == this; } } diff --git a/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java b/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java index 89162dcd6f..c1db45f7af 100644 --- a/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java +++ b/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java @@ -21,12 +21,12 @@ import io.reactivex.functions.Consumer; import io.reactivex.internal.disposables.*; import io.reactivex.internal.functions.Functions; -import io.reactivex.observers.CompositeObserver; +import io.reactivex.observers.LambdaConsumerIntrospection; import io.reactivex.plugins.RxJavaPlugins; public final class ConsumerSingleObserver extends AtomicReference -implements SingleObserver, Disposable, CompositeObserver { +implements SingleObserver, Disposable, LambdaConsumerIntrospection { private static final long serialVersionUID = -7012088219455310787L; @@ -78,7 +78,7 @@ public boolean isDisposed() { } @Override - public boolean onErrorImplemented() { + public boolean hasCustomOnError() { return onError == Functions.ON_ERROR_MISSING; } } diff --git a/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java b/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java index ad4ae85a99..d6320911c3 100644 --- a/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java +++ b/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java @@ -19,12 +19,12 @@ import io.reactivex.disposables.Disposable; import io.reactivex.exceptions.OnErrorNotImplementedException; import io.reactivex.internal.disposables.DisposableHelper; -import io.reactivex.observers.CompositeObserver; +import io.reactivex.observers.LambdaConsumerIntrospection; import io.reactivex.plugins.RxJavaPlugins; public final class EmptyCompletableObserver extends AtomicReference -implements CompletableObserver, Disposable, CompositeObserver { +implements CompletableObserver, Disposable, LambdaConsumerIntrospection { private static final long serialVersionUID = -7545121636549663526L; @@ -57,7 +57,7 @@ public void onSubscribe(Disposable d) { } @Override - public boolean onErrorImplemented() { + public boolean hasCustomOnError() { return true; } } diff --git a/src/main/java/io/reactivex/internal/observers/LambdaObserver.java b/src/main/java/io/reactivex/internal/observers/LambdaObserver.java index 7bb7c8f708..3cc192a8f9 100644 --- a/src/main/java/io/reactivex/internal/observers/LambdaObserver.java +++ b/src/main/java/io/reactivex/internal/observers/LambdaObserver.java @@ -21,11 +21,11 @@ import io.reactivex.functions.*; import io.reactivex.internal.disposables.DisposableHelper; import io.reactivex.internal.functions.Functions; -import io.reactivex.observers.CompositeObserver; +import io.reactivex.observers.LambdaConsumerIntrospection; import io.reactivex.plugins.RxJavaPlugins; public final class LambdaObserver extends AtomicReference - implements Observer, Disposable, CompositeObserver { + implements Observer, Disposable, LambdaConsumerIntrospection { private static final long serialVersionUID = -7251123623727029452L; final Consumer onNext; @@ -106,7 +106,7 @@ public boolean isDisposed() { } @Override - public boolean onErrorImplemented() { + public boolean hasCustomOnError() { return onError == Functions.ON_ERROR_MISSING; } } diff --git a/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java b/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java index e5486f57fe..321e9c3748 100644 --- a/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java +++ b/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java @@ -21,7 +21,7 @@ import io.reactivex.functions.*; import io.reactivex.internal.disposables.DisposableHelper; import io.reactivex.internal.functions.Functions; -import io.reactivex.observers.CompositeObserver; +import io.reactivex.observers.LambdaConsumerIntrospection; import io.reactivex.plugins.RxJavaPlugins; /** @@ -31,7 +31,7 @@ */ public final class MaybeCallbackObserver extends AtomicReference -implements MaybeObserver, Disposable, CompositeObserver { +implements MaybeObserver, Disposable, LambdaConsumerIntrospection { private static final long serialVersionUID = -6076952298809384986L; @@ -99,7 +99,7 @@ public void onComplete() { } @Override - public boolean onErrorImplemented() { + public boolean hasCustomOnError() { return onError == Functions.ON_ERROR_MISSING; } } diff --git a/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java b/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java index 2ff33564e9..f6b85c6774 100644 --- a/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java +++ b/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java @@ -16,7 +16,7 @@ import java.util.concurrent.atomic.AtomicReference; import io.reactivex.internal.functions.Functions; -import io.reactivex.observers.CompositeObserver; +import io.reactivex.observers.LambdaConsumerIntrospection; import org.reactivestreams.Subscription; import io.reactivex.FlowableSubscriber; @@ -27,7 +27,7 @@ import io.reactivex.plugins.RxJavaPlugins; public final class LambdaSubscriber extends AtomicReference - implements FlowableSubscriber, Subscription, Disposable, CompositeObserver { + implements FlowableSubscriber, Subscription, Disposable, LambdaConsumerIntrospection { private static final long serialVersionUID = -7251123623727029452L; final Consumer onNext; @@ -120,7 +120,7 @@ public void cancel() { } @Override - public boolean onErrorImplemented() { + public boolean hasCustomOnError() { return onError == Functions.ON_ERROR_MISSING; } } diff --git a/src/main/java/io/reactivex/observers/CompositeObserver.java b/src/main/java/io/reactivex/observers/LambdaConsumerIntrospection.java similarity index 73% rename from src/main/java/io/reactivex/observers/CompositeObserver.java rename to src/main/java/io/reactivex/observers/LambdaConsumerIntrospection.java index a3a31d9fd8..a7371d018e 100644 --- a/src/main/java/io/reactivex/observers/CompositeObserver.java +++ b/src/main/java/io/reactivex/observers/LambdaConsumerIntrospection.java @@ -6,18 +6,18 @@ * An interface that indicates that the implementing type is composed of individual components and exposes information * about their behavior. * - *

NOTE: This is considered a read-only public API and is not intended to be implemented by consumers. + *

NOTE: This is considered a read-only public API and is not intended to be implemented externally. * * @since 2.1.4 - experimental */ @Experimental -public interface CompositeObserver { +public interface LambdaConsumerIntrospection { /** - * @return {@code true} if a concrete error consumer implementation was supplied. Returns {@code false} if the + * @return {@code true} if a custom onError consumer implementation was supplied. Returns {@code false} if the * implementation is missing an error consumer and thus using a throwing default implementation. */ @Experimental - boolean onErrorImplemented(); + boolean hasCustomOnError(); } diff --git a/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java b/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java index acf74911de..000adee8e3 100644 --- a/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java +++ b/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java @@ -11,7 +11,7 @@ public final class CallbackCompletableObserverTest { public void hasMissingErrorConsumer() { CallbackCompletableObserver o = new CallbackCompletableObserver(Functions.EMPTY_ACTION); - assertTrue(o.onErrorImplemented()); + assertTrue(o.hasCustomOnError()); } @Test @@ -19,7 +19,7 @@ public void isNotMissingErrorConsumer() { CallbackCompletableObserver o = new CallbackCompletableObserver(Functions.emptyConsumer(), Functions.EMPTY_ACTION); - assertFalse(o.onErrorImplemented()); + assertFalse(o.hasCustomOnError()); } } diff --git a/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java b/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java index 7fd7fe5c96..dceeec2ecc 100644 --- a/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java +++ b/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java @@ -12,7 +12,7 @@ public void hasMissingErrorConsumer() { ConsumerSingleObserver o = new ConsumerSingleObserver(Functions.emptyConsumer(), Functions.ON_ERROR_MISSING); - assertTrue(o.onErrorImplemented()); + assertTrue(o.hasCustomOnError()); } @Test @@ -20,7 +20,7 @@ public void isNotMissingErrorConsumer() { ConsumerSingleObserver o = new ConsumerSingleObserver(Functions.emptyConsumer(), Functions.emptyConsumer()); - assertFalse(o.onErrorImplemented()); + assertFalse(o.hasCustomOnError()); } } diff --git a/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java b/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java index bd8d696aa0..dcecac7731 100644 --- a/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java +++ b/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java @@ -10,6 +10,6 @@ public final class EmptyCompletableObserverTest { public void hasMissingErrorConsumer() { EmptyCompletableObserver o = new EmptyCompletableObserver(); - assertTrue(o.onErrorImplemented()); + assertTrue(o.hasCustomOnError()); } } diff --git a/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java b/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java index 4d7ac21bac..23e100d992 100644 --- a/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java +++ b/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java @@ -351,7 +351,7 @@ public void hasMissingErrorConsumer() { Functions.EMPTY_ACTION, Functions.emptyConsumer()); - assertTrue(o.onErrorImplemented()); + assertTrue(o.hasCustomOnError()); } @Test @@ -361,6 +361,6 @@ public void isNotMissingErrorConsumer() { Functions.EMPTY_ACTION, Functions.emptyConsumer()); - assertFalse(o.onErrorImplemented()); + assertFalse(o.hasCustomOnError()); } } diff --git a/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java b/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java index 79c7271d1a..b022e0a823 100644 --- a/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java +++ b/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java @@ -127,7 +127,7 @@ public void hasMissingErrorConsumer() { Functions.ON_ERROR_MISSING, Functions.EMPTY_ACTION); - assertTrue(o.onErrorImplemented()); + assertTrue(o.hasCustomOnError()); } @Test @@ -136,6 +136,6 @@ public void isNotMissingErrorConsumer() { Functions.emptyConsumer(), Functions.EMPTY_ACTION); - assertFalse(o.onErrorImplemented()); + assertFalse(o.hasCustomOnError()); } } diff --git a/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java b/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java index d64dbe62b5..35cec65031 100644 --- a/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java +++ b/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java @@ -356,7 +356,7 @@ public void hasMissingErrorConsumer() { Functions.EMPTY_ACTION, FlowableInternalHelper.RequestMax.INSTANCE); - assertTrue(o.onErrorImplemented()); + assertTrue(o.hasCustomOnError()); } @Test @@ -366,6 +366,6 @@ public void isNotMissingErrorConsumer() { Functions.EMPTY_ACTION, FlowableInternalHelper.RequestMax.INSTANCE); - assertFalse(o.onErrorImplemented()); + assertFalse(o.hasCustomOnError()); } } From 500df33a6aa43bb37814656c51b7dbdbf87f7c5f Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Sat, 9 Sep 2017 18:10:30 -0700 Subject: [PATCH 10/10] Update tests and flip implementation logic to match naming --- .../internal/observers/CallbackCompletableObserver.java | 2 +- .../internal/observers/ConsumerSingleObserver.java | 2 +- .../internal/observers/EmptyCompletableObserver.java | 2 +- .../io/reactivex/internal/observers/LambdaObserver.java | 2 +- .../internal/operators/maybe/MaybeCallbackObserver.java | 2 +- .../reactivex/internal/subscribers/LambdaSubscriber.java | 2 +- .../observers/CallbackCompletableObserverTest.java | 8 ++++---- .../internal/observers/ConsumerSingleObserverTest.java | 8 ++++---- .../internal/observers/EmptyCompletableObserverTest.java | 6 +++--- .../reactivex/internal/observers/LambdaObserverTest.java | 8 ++++---- .../operators/maybe/MaybeCallbackObserverTest.java | 8 ++++---- .../internal/subscribers/LambdaSubscriberTest.java | 8 ++++---- 12 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java b/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java index c09d4df14a..3555751a8e 100644 --- a/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java +++ b/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java @@ -87,6 +87,6 @@ public boolean isDisposed() { @Override public boolean hasCustomOnError() { - return onError == this; + return onError != this; } } diff --git a/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java b/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java index c1db45f7af..7c3c4ad3b7 100644 --- a/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java +++ b/src/main/java/io/reactivex/internal/observers/ConsumerSingleObserver.java @@ -79,6 +79,6 @@ public boolean isDisposed() { @Override public boolean hasCustomOnError() { - return onError == Functions.ON_ERROR_MISSING; + return onError != Functions.ON_ERROR_MISSING; } } diff --git a/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java b/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java index d6320911c3..5b70ddb624 100644 --- a/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java +++ b/src/main/java/io/reactivex/internal/observers/EmptyCompletableObserver.java @@ -58,6 +58,6 @@ public void onSubscribe(Disposable d) { @Override public boolean hasCustomOnError() { - return true; + return false; } } diff --git a/src/main/java/io/reactivex/internal/observers/LambdaObserver.java b/src/main/java/io/reactivex/internal/observers/LambdaObserver.java index 3cc192a8f9..041229a1ea 100644 --- a/src/main/java/io/reactivex/internal/observers/LambdaObserver.java +++ b/src/main/java/io/reactivex/internal/observers/LambdaObserver.java @@ -107,6 +107,6 @@ public boolean isDisposed() { @Override public boolean hasCustomOnError() { - return onError == Functions.ON_ERROR_MISSING; + return onError != Functions.ON_ERROR_MISSING; } } diff --git a/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java b/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java index 321e9c3748..1a3da7d04b 100644 --- a/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java +++ b/src/main/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserver.java @@ -100,6 +100,6 @@ public void onComplete() { @Override public boolean hasCustomOnError() { - return onError == Functions.ON_ERROR_MISSING; + return onError != Functions.ON_ERROR_MISSING; } } diff --git a/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java b/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java index f6b85c6774..5568cf5156 100644 --- a/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java +++ b/src/main/java/io/reactivex/internal/subscribers/LambdaSubscriber.java @@ -121,6 +121,6 @@ public void cancel() { @Override public boolean hasCustomOnError() { - return onError == Functions.ON_ERROR_MISSING; + return onError != Functions.ON_ERROR_MISSING; } } diff --git a/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java b/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java index 000adee8e3..f7bbeee6d2 100644 --- a/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java +++ b/src/test/java/io/reactivex/internal/observers/CallbackCompletableObserverTest.java @@ -8,18 +8,18 @@ public final class CallbackCompletableObserverTest { @Test - public void hasMissingErrorConsumer() { + public void emptyActionShouldReportNoCustomOnError() { CallbackCompletableObserver o = new CallbackCompletableObserver(Functions.EMPTY_ACTION); - assertTrue(o.hasCustomOnError()); + assertFalse(o.hasCustomOnError()); } @Test - public void isNotMissingErrorConsumer() { + public void customOnErrorShouldReportCustomOnError() { CallbackCompletableObserver o = new CallbackCompletableObserver(Functions.emptyConsumer(), Functions.EMPTY_ACTION); - assertFalse(o.hasCustomOnError()); + assertTrue(o.hasCustomOnError()); } } diff --git a/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java b/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java index dceeec2ecc..75e217d3e7 100644 --- a/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java +++ b/src/test/java/io/reactivex/internal/observers/ConsumerSingleObserverTest.java @@ -8,19 +8,19 @@ public final class ConsumerSingleObserverTest { @Test - public void hasMissingErrorConsumer() { + public void onErrorMissingShouldReportNoCustomOnError() { ConsumerSingleObserver o = new ConsumerSingleObserver(Functions.emptyConsumer(), Functions.ON_ERROR_MISSING); - assertTrue(o.hasCustomOnError()); + assertFalse(o.hasCustomOnError()); } @Test - public void isNotMissingErrorConsumer() { + public void customOnErrorShouldReportCustomOnError() { ConsumerSingleObserver o = new ConsumerSingleObserver(Functions.emptyConsumer(), Functions.emptyConsumer()); - assertFalse(o.hasCustomOnError()); + assertTrue(o.hasCustomOnError()); } } diff --git a/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java b/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java index dcecac7731..af72e5a376 100644 --- a/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java +++ b/src/test/java/io/reactivex/internal/observers/EmptyCompletableObserverTest.java @@ -2,14 +2,14 @@ import org.junit.Test; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertFalse; public final class EmptyCompletableObserverTest { @Test - public void hasMissingErrorConsumer() { + public void defaultShouldReportNoCustomOnError() { EmptyCompletableObserver o = new EmptyCompletableObserver(); - assertTrue(o.hasCustomOnError()); + assertFalse(o.hasCustomOnError()); } } diff --git a/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java b/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java index 23e100d992..d5d3f647d3 100644 --- a/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java +++ b/src/test/java/io/reactivex/internal/observers/LambdaObserverTest.java @@ -345,22 +345,22 @@ public void accept(Disposable s) throws Exception { } @Test - public void hasMissingErrorConsumer() { + public void onErrorMissingShouldReportNoCustomOnError() { LambdaObserver o = new LambdaObserver(Functions.emptyConsumer(), Functions.ON_ERROR_MISSING, Functions.EMPTY_ACTION, Functions.emptyConsumer()); - assertTrue(o.hasCustomOnError()); + assertFalse(o.hasCustomOnError()); } @Test - public void isNotMissingErrorConsumer() { + public void customOnErrorShouldReportCustomOnError() { LambdaObserver o = new LambdaObserver(Functions.emptyConsumer(), Functions.emptyConsumer(), Functions.EMPTY_ACTION, Functions.emptyConsumer()); - assertFalse(o.hasCustomOnError()); + assertTrue(o.hasCustomOnError()); } } diff --git a/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java b/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java index b022e0a823..e810f63e74 100644 --- a/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java +++ b/src/test/java/io/reactivex/internal/operators/maybe/MaybeCallbackObserverTest.java @@ -122,20 +122,20 @@ public void run() throws Exception { } @Test - public void hasMissingErrorConsumer() { + public void onErrorMissingShouldReportNoCustomOnError() { MaybeCallbackObserver o = new MaybeCallbackObserver(Functions.emptyConsumer(), Functions.ON_ERROR_MISSING, Functions.EMPTY_ACTION); - assertTrue(o.hasCustomOnError()); + assertFalse(o.hasCustomOnError()); } @Test - public void isNotMissingErrorConsumer() { + public void customOnErrorShouldReportCustomOnError() { MaybeCallbackObserver o = new MaybeCallbackObserver(Functions.emptyConsumer(), Functions.emptyConsumer(), Functions.EMPTY_ACTION); - assertFalse(o.hasCustomOnError()); + assertTrue(o.hasCustomOnError()); } } diff --git a/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java b/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java index 35cec65031..f07d7bdc30 100644 --- a/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java +++ b/src/test/java/io/reactivex/internal/subscribers/LambdaSubscriberTest.java @@ -350,22 +350,22 @@ public void accept(Subscription s) throws Exception { } @Test - public void hasMissingErrorConsumer() { + public void onErrorMissingShouldReportNoCustomOnError() { LambdaSubscriber o = new LambdaSubscriber(Functions.emptyConsumer(), Functions.ON_ERROR_MISSING, Functions.EMPTY_ACTION, FlowableInternalHelper.RequestMax.INSTANCE); - assertTrue(o.hasCustomOnError()); + assertFalse(o.hasCustomOnError()); } @Test - public void isNotMissingErrorConsumer() { + public void customOnErrorShouldReportCustomOnError() { LambdaSubscriber o = new LambdaSubscriber(Functions.emptyConsumer(), Functions.emptyConsumer(), Functions.EMPTY_ACTION, FlowableInternalHelper.RequestMax.INSTANCE); - assertFalse(o.hasCustomOnError()); + assertTrue(o.hasCustomOnError()); } }