Skip to content

Commit 7a1a4af

Browse files
authored
2.x: add missing ops, cleanup, fusion fixes (#4403)
* 2.x: add missing ops, cleanup, fusion fixes * Fix scalar handling in flatMaps, rename Objects to ObjectHelper
1 parent 5b8845d commit 7a1a4af

File tree

129 files changed

+3946
-1553
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

129 files changed

+3946
-1553
lines changed

src/main/java/io/reactivex/Completable.java

+60-60
Large diffs are not rendered by default.

src/main/java/io/reactivex/Flowable.java

+311-311
Large diffs are not rendered by default.

src/main/java/io/reactivex/Notification.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
package io.reactivex;
1515

16-
import io.reactivex.internal.functions.Objects;
16+
import io.reactivex.internal.functions.ObjectHelper;
1717
import io.reactivex.internal.util.NotificationLite;
1818

1919
/**
@@ -92,7 +92,7 @@ public Throwable getError() {
9292
public boolean equals(Object obj) {
9393
if (obj instanceof Notification) {
9494
Notification<?> n = (Notification<?>) obj;
95-
return Objects.equals(value, n.value);
95+
return ObjectHelper.equals(value, n.value);
9696
}
9797
return false;
9898
}
@@ -123,7 +123,7 @@ public String toString() {
123123
* @throws NullPointerException if value is null
124124
*/
125125
public static <T> Notification<T> createOnNext(T value) {
126-
Objects.requireNonNull(value, "value is null");
126+
ObjectHelper.requireNonNull(value, "value is null");
127127
return new Notification<T>(value);
128128
}
129129

@@ -135,7 +135,7 @@ public static <T> Notification<T> createOnNext(T value) {
135135
* @throws NullPointerException if error is null
136136
*/
137137
public static <T> Notification<T> createOnError(Throwable error) {
138-
Objects.requireNonNull(error, "error is null");
138+
ObjectHelper.requireNonNull(error, "error is null");
139139
return new Notification<T>(NotificationLite.error(error));
140140
}
141141

src/main/java/io/reactivex/Observable.java

+407-372
Large diffs are not rendered by default.

src/main/java/io/reactivex/Single.java

+182-182
Large diffs are not rendered by default.

src/main/java/io/reactivex/disposables/CompositeDisposable.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
import io.reactivex.exceptions.*;
1818
import io.reactivex.internal.disposables.DisposableContainer;
19-
import io.reactivex.internal.functions.Objects;
19+
import io.reactivex.internal.functions.ObjectHelper;
2020
import io.reactivex.internal.util.OpenHashSet;
2121

2222
/**
@@ -40,10 +40,10 @@ public CompositeDisposable() {
4040
* @param resources the array of Disposables to start with
4141
*/
4242
public CompositeDisposable(Disposable... resources) {
43-
Objects.requireNonNull(resources, "resources is null");
43+
ObjectHelper.requireNonNull(resources, "resources is null");
4444
this.resources = new OpenHashSet<Disposable>(resources.length + 1);
4545
for (Disposable d : resources) {
46-
Objects.requireNonNull(d, "Disposable item is null");
46+
ObjectHelper.requireNonNull(d, "Disposable item is null");
4747
this.resources.add(d);
4848
}
4949
}
@@ -53,9 +53,9 @@ public CompositeDisposable(Disposable... resources) {
5353
* @param resources the Iterable sequence of Disposables to start with
5454
*/
5555
public CompositeDisposable(Iterable<? extends Disposable> resources) {
56-
Objects.requireNonNull(resources, "resources is null");
56+
ObjectHelper.requireNonNull(resources, "resources is null");
5757
for (Disposable d : resources) {
58-
Objects.requireNonNull(d, "Disposable item is null");
58+
ObjectHelper.requireNonNull(d, "Disposable item is null");
5959
this.resources.add(d);
6060
}
6161
}
@@ -85,7 +85,7 @@ public boolean isDisposed() {
8585

8686
@Override
8787
public boolean add(Disposable d) {
88-
Objects.requireNonNull(d, "d is null");
88+
ObjectHelper.requireNonNull(d, "d is null");
8989
if (!disposed) {
9090
synchronized (this) {
9191
if (!disposed) {
@@ -110,7 +110,7 @@ public boolean add(Disposable d) {
110110
* @return true if the operation was successful, false if the container has been disposed
111111
*/
112112
public boolean addAll(Disposable... ds) {
113-
Objects.requireNonNull(ds, "ds is null");
113+
ObjectHelper.requireNonNull(ds, "ds is null");
114114
if (!disposed) {
115115
synchronized (this) {
116116
if (!disposed) {
@@ -120,7 +120,7 @@ public boolean addAll(Disposable... ds) {
120120
resources = set;
121121
}
122122
for (Disposable d : ds) {
123-
Objects.requireNonNull(d, "d is null");
123+
ObjectHelper.requireNonNull(d, "d is null");
124124
set.add(d);
125125
}
126126
return true;
@@ -144,7 +144,7 @@ public boolean remove(Disposable d) {
144144

145145
@Override
146146
public boolean delete(Disposable d) {
147-
Objects.requireNonNull(d, "Disposable item is null");
147+
ObjectHelper.requireNonNull(d, "Disposable item is null");
148148
if (disposed) {
149149
return false;
150150
}

src/main/java/io/reactivex/disposables/Disposables.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ private Disposables() {
3939
* @return the new Disposable instance
4040
*/
4141
public static Disposable from(Runnable run) {
42-
Objects.requireNonNull(run, "run is null");
42+
ObjectHelper.requireNonNull(run, "run is null");
4343
return new RunnableDisposable(run);
4444
}
4545

@@ -50,7 +50,7 @@ public static Disposable from(Runnable run) {
5050
* @return the new Disposable instance
5151
*/
5252
public static Disposable from(Action run) {
53-
Objects.requireNonNull(run, "run is null");
53+
ObjectHelper.requireNonNull(run, "run is null");
5454
return new ActionDisposable(run);
5555
}
5656

@@ -61,7 +61,7 @@ public static Disposable from(Action run) {
6161
* @return the new Disposable instance
6262
*/
6363
public static Disposable from(Future<?> future) {
64-
Objects.requireNonNull(future, "future is null");
64+
ObjectHelper.requireNonNull(future, "future is null");
6565
return from(future, true);
6666
}
6767

@@ -73,7 +73,7 @@ public static Disposable from(Future<?> future) {
7373
* @return the new Disposable instance
7474
*/
7575
public static Disposable from(Future<?> future, boolean allowInterrupt) {
76-
Objects.requireNonNull(future, "future is null");
76+
ObjectHelper.requireNonNull(future, "future is null");
7777
return new FutureDisposable(future, allowInterrupt);
7878
}
7979

@@ -84,7 +84,7 @@ public static Disposable from(Future<?> future, boolean allowInterrupt) {
8484
* @return the new Disposable instance
8585
*/
8686
public static Disposable from(Subscription subscription) {
87-
Objects.requireNonNull(subscription, "subscription is null");
87+
ObjectHelper.requireNonNull(subscription, "subscription is null");
8888
return new SubscriptionDisposable(subscription);
8989
}
9090

src/main/java/io/reactivex/disposables/ReferenceDisposable.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
import java.util.concurrent.atomic.AtomicReference;
1717

18-
import io.reactivex.internal.functions.Objects;
18+
import io.reactivex.internal.functions.ObjectHelper;
1919

2020
/**
2121
* Base class for Disposable containers that manage some other type that
@@ -28,7 +28,7 @@ abstract class ReferenceDisposable<T> extends AtomicReference<T> implements Disp
2828
private static final long serialVersionUID = 6537757548749041217L;
2929

3030
ReferenceDisposable(T value) {
31-
super(Objects.requireNonNull(value, "value is null"));
31+
super(ObjectHelper.requireNonNull(value, "value is null"));
3232
}
3333

3434
protected abstract void onDisposed(T value);

src/main/java/io/reactivex/internal/disposables/DisposableHelper.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import java.util.concurrent.atomic.AtomicReference;
1717

1818
import io.reactivex.disposables.Disposable;
19-
import io.reactivex.internal.functions.Objects;
19+
import io.reactivex.internal.functions.ObjectHelper;
2020
import io.reactivex.plugins.RxJavaPlugins;
2121

2222
/**
@@ -54,7 +54,7 @@ public static boolean set(AtomicReference<Disposable> field, Disposable d) {
5454
}
5555

5656
public static boolean setOnce(AtomicReference<Disposable> field, Disposable d) {
57-
Objects.requireNonNull(d, "d is null");
57+
ObjectHelper.requireNonNull(d, "d is null");
5858
if (!field.compareAndSet(null, d)) {
5959
d.dispose();
6060
if (field.get() != DISPOSED) {

src/main/java/io/reactivex/internal/disposables/EmptyDisposable.java

+47-3
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,22 @@
1414
package io.reactivex.internal.disposables;
1515

1616
import io.reactivex.*;
17-
import io.reactivex.disposables.Disposable;
17+
import io.reactivex.internal.fuseable.QueueDisposable;
1818

19-
public enum EmptyDisposable implements Disposable {
19+
/**
20+
* Represents a stateless empty Disposable that reports being always
21+
* empty and disposed.
22+
* <p>It is also async-fuseable but empty all the time.
23+
* <p>Since EmptyDisposable implements QueueDisposable and is empty,
24+
* don't use it in tests and then signal onNext with it;
25+
* use Disposables.empty() instead.
26+
*/
27+
public enum EmptyDisposable implements QueueDisposable<Object> {
28+
/**
29+
* Since EmptyDisposable implements QueueDisposable and is empty,
30+
* don't use it in tests and then signal onNext with it;
31+
* use Disposables.empty() instead.
32+
*/
2033
INSTANCE
2134
;
2235

@@ -27,7 +40,7 @@ public void dispose() {
2740

2841
@Override
2942
public boolean isDisposed() {
30-
return true; // TODO is this okay?
43+
return true;
3144
}
3245

3346
public static void complete(Observer<?> s) {
@@ -55,4 +68,35 @@ public static void error(Throwable e, SingleObserver<?> s) {
5568
s.onError(e);
5669
}
5770

71+
@Override
72+
public boolean offer(Object value) {
73+
throw new UnsupportedOperationException("Should not be called!");
74+
}
75+
76+
@Override
77+
public boolean offer(Object v1, Object v2) {
78+
throw new UnsupportedOperationException("Should not be called!");
79+
}
80+
81+
@Override
82+
public Object poll() throws Exception {
83+
return null; // always empty
84+
}
85+
86+
@Override
87+
public boolean isEmpty() {
88+
return true; // always empty
89+
}
90+
91+
@Override
92+
public void clear() {
93+
// nothing to do
94+
}
95+
96+
@Override
97+
public int requestFusion(int mode) {
98+
return mode & ASYNC;
99+
}
100+
101+
58102
}

src/main/java/io/reactivex/internal/disposables/ListCompositeDisposable.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
import io.reactivex.disposables.Disposable;
1818
import io.reactivex.exceptions.*;
19-
import io.reactivex.internal.functions.Objects;
19+
import io.reactivex.internal.functions.ObjectHelper;
2020

2121
/**
2222
* A disposable container that can hold onto multiple other disposables.
@@ -31,18 +31,18 @@ public ListCompositeDisposable() {
3131
}
3232

3333
public ListCompositeDisposable(Disposable... resources) {
34-
Objects.requireNonNull(resources, "resources is null");
34+
ObjectHelper.requireNonNull(resources, "resources is null");
3535
this.resources = new LinkedList<Disposable>();
3636
for (Disposable d : resources) {
37-
Objects.requireNonNull(d, "Disposable item is null");
37+
ObjectHelper.requireNonNull(d, "Disposable item is null");
3838
this.resources.add(d);
3939
}
4040
}
4141

4242
public ListCompositeDisposable(Iterable<? extends Disposable> resources) {
43-
Objects.requireNonNull(resources, "resources is null");
43+
ObjectHelper.requireNonNull(resources, "resources is null");
4444
for (Disposable d : resources) {
45-
Objects.requireNonNull(d, "Disposable item is null");
45+
ObjectHelper.requireNonNull(d, "Disposable item is null");
4646
this.resources.add(d);
4747
}
4848
}
@@ -72,7 +72,7 @@ public boolean isDisposed() {
7272

7373
@Override
7474
public boolean add(Disposable d) {
75-
Objects.requireNonNull(d, "d is null");
75+
ObjectHelper.requireNonNull(d, "d is null");
7676
if (!disposed) {
7777
synchronized (this) {
7878
if (!disposed) {
@@ -91,7 +91,7 @@ public boolean add(Disposable d) {
9191
}
9292

9393
public boolean addAll(Disposable... ds) {
94-
Objects.requireNonNull(ds, "ds is null");
94+
ObjectHelper.requireNonNull(ds, "ds is null");
9595
if (!disposed) {
9696
synchronized (this) {
9797
if (!disposed) {
@@ -101,7 +101,7 @@ public boolean addAll(Disposable... ds) {
101101
resources = set;
102102
}
103103
for (Disposable d : ds) {
104-
Objects.requireNonNull(d, "d is null");
104+
ObjectHelper.requireNonNull(d, "d is null");
105105
set.add(d);
106106
}
107107
return true;
@@ -125,7 +125,7 @@ public boolean remove(Disposable d) {
125125

126126
@Override
127127
public boolean delete(Disposable d) {
128-
Objects.requireNonNull(d, "Disposable item is null");
128+
ObjectHelper.requireNonNull(d, "Disposable item is null");
129129
if (disposed) {
130130
return false;
131131
}

0 commit comments

Comments
 (0)