Skip to content

Commit d4f041b

Browse files
authored
Observable direct rest (ReactiveX#4145)
* Switch the remaining Observable operators to direct impl. * Last set of operators, test renames
1 parent a09f5a4 commit d4f041b

258 files changed

Lines changed: 2214 additions & 2296 deletions

File tree

Some content is hidden

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

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

Lines changed: 85 additions & 90 deletions
Large diffs are not rendered by default.

‎src/main/java/io/reactivex/internal/operators/observable/NbpOperatorIgnoreElements.java‎

Lines changed: 0 additions & 52 deletions
This file was deleted.

src/main/java/io/reactivex/internal/operators/observable/NbpOperatorCollect.java renamed to src/main/java/io/reactivex/internal/operators/observable/ObservableCollect.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,39 +12,39 @@
1212
*/
1313
package io.reactivex.internal.operators.observable;
1414

15-
import io.reactivex.Observable.NbpOperator;
16-
import io.reactivex.Observer;
15+
import io.reactivex.*;
1716
import io.reactivex.disposables.Disposable;
1817
import io.reactivex.functions.*;
1918
import io.reactivex.internal.disposables.*;
20-
import io.reactivex.internal.subscribers.observable.NbpEmptySubscriber;
2119

22-
public final class NbpOperatorCollect<T, U> implements NbpOperator<U, T> {
20+
public final class ObservableCollect<T, U> extends ObservableSource<T, U> {
2321
final Supplier<? extends U> initialSupplier;
2422
final BiConsumer<? super U, ? super T> collector;
2523

26-
public NbpOperatorCollect(Supplier<? extends U> initialSupplier, BiConsumer<? super U, ? super T> collector) {
24+
public ObservableCollect(ObservableConsumable<T> source,
25+
Supplier<? extends U> initialSupplier, BiConsumer<? super U, ? super T> collector) {
26+
super(source);
2727
this.initialSupplier = initialSupplier;
2828
this.collector = collector;
2929
}
3030

3131
@Override
32-
public Observer<? super T> apply(Observer<? super U> t) {
33-
32+
protected void subscribeActual(Observer<? super U> t) {
3433
U u;
3534
try {
3635
u = initialSupplier.get();
3736
} catch (Throwable e) {
3837
EmptyDisposable.error(e, t);
39-
return NbpEmptySubscriber.DISPOSED;
38+
return;
4039
}
4140

4241
if (u == null) {
4342
EmptyDisposable.error(new NullPointerException("The inital supplier returned a null value"), t);
44-
return NbpEmptySubscriber.DISPOSED;
43+
return;
4544
}
4645

47-
return new CollectSubscriber<T, U>(t, u, collector);
46+
source.subscribe(new CollectSubscriber<T, U>(t, u, collector));
47+
4848
}
4949

5050
static final class CollectSubscriber<T, U> implements Observer<T> {

src/main/java/io/reactivex/internal/operators/observable/NbpOperatorConcatMap.java renamed to src/main/java/io/reactivex/internal/operators/observable/ObservableConcatMap.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,27 @@
1616
import java.util.concurrent.atomic.AtomicInteger;
1717

1818
import io.reactivex.*;
19-
import io.reactivex.Observable.NbpOperator;
2019
import io.reactivex.disposables.*;
2120
import io.reactivex.functions.Function;
2221
import io.reactivex.internal.disposables.DisposableHelper;
2322
import io.reactivex.internal.queue.SpscLinkedArrayQueue;
2423
import io.reactivex.observers.SerializedObserver;
2524
import io.reactivex.plugins.RxJavaPlugins;
2625

27-
public final class NbpOperatorConcatMap<T, U> implements NbpOperator<U, T> {
26+
public final class ObservableConcatMap<T, U> extends ObservableSource<T, U> {
2827
final Function<? super T, ? extends ObservableConsumable<? extends U>> mapper;
2928
final int bufferSize;
30-
public NbpOperatorConcatMap(Function<? super T, ? extends ObservableConsumable<? extends U>> mapper, int bufferSize) {
29+
public ObservableConcatMap(ObservableConsumable<T> source, Function<? super T, ? extends ObservableConsumable<? extends U>> mapper, int bufferSize) {
30+
super(source);
3131
this.mapper = mapper;
3232
this.bufferSize = Math.max(8, bufferSize);
3333
}
3434
@Override
35-
public Observer<? super T> apply(Observer<? super U> s) {
35+
public void subscribeActual(Observer<? super U> s) {
3636
SerializedObserver<U> ssub = new SerializedObserver<U>(s);
3737
SerialDisposable sa = new SerialDisposable();
3838
ssub.onSubscribe(sa);
39-
return new SourceSubscriber<T, U>(ssub, sa, mapper, bufferSize);
39+
source.subscribe(new SourceSubscriber<T, U>(ssub, sa, mapper, bufferSize));
4040
}
4141

4242
static final class SourceSubscriber<T, U> extends AtomicInteger implements Observer<T> {

src/main/java/io/reactivex/internal/operators/observable/NbpOperatorCount.java renamed to src/main/java/io/reactivex/internal/operators/observable/ObservableCount.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,18 @@
1313

1414
package io.reactivex.internal.operators.observable;
1515

16-
import io.reactivex.Observable.NbpOperator;
17-
import io.reactivex.Observer;
16+
import io.reactivex.*;
1817
import io.reactivex.disposables.Disposable;
1918
import io.reactivex.internal.disposables.DisposableHelper;
2019

21-
public enum NbpOperatorCount implements NbpOperator<Long, Object> {
22-
INSTANCE;
23-
24-
@SuppressWarnings("unchecked")
25-
public static <T> NbpOperator<Long, T> instance() {
26-
return (NbpOperator<Long, T>)INSTANCE;
20+
public final class ObservableCount<T> extends ObservableSource<T, Long> {
21+
public ObservableCount(ObservableConsumable<T> source) {
22+
super(source);
2723
}
28-
24+
2925
@Override
30-
public Observer<? super Object> apply(Observer<? super Long> t) {
31-
return new CountSubscriber(t);
26+
public void subscribeActual(Observer<? super Long> t) {
27+
source.subscribe(new CountSubscriber(t));
3228
}
3329

3430
static final class CountSubscriber implements Observer<Object> {

src/main/java/io/reactivex/internal/operators/observable/NbpOperatorDebounce.java renamed to src/main/java/io/reactivex/internal/operators/observable/ObservableDebounce.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,24 @@
1616
import java.util.concurrent.atomic.*;
1717

1818
import io.reactivex.*;
19-
import io.reactivex.Observable.NbpOperator;
2019
import io.reactivex.disposables.Disposable;
2120
import io.reactivex.functions.Function;
2221
import io.reactivex.internal.disposables.DisposableHelper;
2322
import io.reactivex.internal.subscribers.observable.DisposableObserver;
2423
import io.reactivex.observers.SerializedObserver;
2524
import io.reactivex.plugins.RxJavaPlugins;
2625

27-
public final class NbpOperatorDebounce<T, U> implements NbpOperator<T, T> {
26+
public final class ObservableDebounce<T, U> extends ObservableSource<T, T> {
2827
final Function<? super T, ? extends ObservableConsumable<U>> debounceSelector;
2928

30-
public NbpOperatorDebounce(Function<? super T, ? extends ObservableConsumable<U>> debounceSelector) {
29+
public ObservableDebounce(ObservableConsumable<T> source, Function<? super T, ? extends ObservableConsumable<U>> debounceSelector) {
30+
super(source);
3131
this.debounceSelector = debounceSelector;
3232
}
3333

3434
@Override
35-
public Observer<? super T> apply(Observer<? super T> t) {
36-
return new DebounceSubscriber<T, U>(new SerializedObserver<T>(t), debounceSelector);
35+
public void subscribeActual(Observer<? super T> t) {
36+
source.subscribe(new DebounceSubscriber<T, U>(new SerializedObserver<T>(t), debounceSelector));
3737
}
3838

3939
static final class DebounceSubscriber<T, U>

src/main/java/io/reactivex/internal/operators/observable/NbpOperatorDebounceTimed.java renamed to src/main/java/io/reactivex/internal/operators/observable/ObservableDebounceTimed.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,29 @@
1717
import java.util.concurrent.atomic.*;
1818

1919
import io.reactivex.*;
20-
import io.reactivex.Observable.NbpOperator;
2120
import io.reactivex.Scheduler.Worker;
2221
import io.reactivex.disposables.Disposable;
2322
import io.reactivex.internal.disposables.DisposableHelper;
2423
import io.reactivex.observers.SerializedObserver;
2524
import io.reactivex.plugins.RxJavaPlugins;
2625

27-
public final class NbpOperatorDebounceTimed<T> implements NbpOperator<T, T> {
26+
public final class ObservableDebounceTimed<T> extends ObservableSource<T, T> {
2827
final long timeout;
2928
final TimeUnit unit;
3029
final Scheduler scheduler;
3130

32-
public NbpOperatorDebounceTimed(long timeout, TimeUnit unit, Scheduler scheduler) {
31+
public ObservableDebounceTimed(ObservableConsumable<T> source, long timeout, TimeUnit unit, Scheduler scheduler) {
32+
super(source);
3333
this.timeout = timeout;
3434
this.unit = unit;
3535
this.scheduler = scheduler;
3636
}
3737

3838
@Override
39-
public Observer<? super T> apply(Observer<? super T> t) {
40-
return new DebounceTimedSubscriber<T>(
39+
public void subscribeActual(Observer<? super T> t) {
40+
source.subscribe(new DebounceTimedSubscriber<T>(
4141
new SerializedObserver<T>(t),
42-
timeout, unit, scheduler.createWorker());
42+
timeout, unit, scheduler.createWorker()));
4343
}
4444

4545
static final class DebounceTimedSubscriber<T>

src/main/java/io/reactivex/internal/operators/observable/NbpOperatorDelay.java renamed to src/main/java/io/reactivex/internal/operators/observable/ObservableDelay.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,28 @@
1616
import java.util.concurrent.TimeUnit;
1717

1818
import io.reactivex.*;
19-
import io.reactivex.Observable.NbpOperator;
2019
import io.reactivex.Scheduler.Worker;
2120
import io.reactivex.disposables.Disposable;
2221
import io.reactivex.internal.disposables.DisposableHelper;
2322
import io.reactivex.observers.SerializedObserver;
2423

25-
public final class NbpOperatorDelay<T> implements NbpOperator<T, T> {
24+
public final class ObservableDelay<T> extends ObservableSource<T, T> {
2625
final long delay;
2726
final TimeUnit unit;
2827
final Scheduler scheduler;
2928
final boolean delayError;
3029

31-
public NbpOperatorDelay(long delay, TimeUnit unit, Scheduler scheduler, boolean delayError) {
30+
public ObservableDelay(ObservableConsumable<T> source, long delay, TimeUnit unit, Scheduler scheduler, boolean delayError) {
31+
super(source);
3232
this.delay = delay;
3333
this.unit = unit;
3434
this.scheduler = scheduler;
3535
this.delayError = delayError;
3636
}
3737

38-
39-
4038
@Override
4139
@SuppressWarnings("unchecked")
42-
public Observer<? super T> apply(Observer<? super T> t) {
40+
public void subscribeActual(Observer<? super T> t) {
4341
Observer<T> s;
4442
if (delayError) {
4543
s = (Observer<T>)t;
@@ -49,7 +47,7 @@ public Observer<? super T> apply(Observer<? super T> t) {
4947

5048
Scheduler.Worker w = scheduler.createWorker();
5149

52-
return new DelaySubscriber<T>(s, delay, unit, w, delayError);
50+
source.subscribe(new DelaySubscriber<T>(s, delay, unit, w, delayError));
5351
}
5452

5553
static final class DelaySubscriber<T> implements Observer<T>, Disposable {

src/main/java/io/reactivex/internal/operators/observable/NbpOperatorDematerialize.java renamed to src/main/java/io/reactivex/internal/operators/observable/ObservableDematerialize.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,19 @@
1414
package io.reactivex.internal.operators.observable;
1515

1616
import io.reactivex.*;
17-
import io.reactivex.Observable.NbpOperator;
1817
import io.reactivex.disposables.Disposable;
1918
import io.reactivex.internal.disposables.DisposableHelper;
2019
import io.reactivex.plugins.RxJavaPlugins;
2120

22-
public enum NbpOperatorDematerialize implements NbpOperator<Object, Try<Optional<Object>>> {
23-
INSTANCE;
24-
25-
@SuppressWarnings({ "rawtypes", "unchecked" })
26-
public static <T> NbpOperator<T, Try<Optional<T>>> instance() {
27-
return (NbpOperator)INSTANCE;
28-
}
21+
public final class ObservableDematerialize<T> extends ObservableSource<Try<Optional<T>>, T> {
2922

23+
public ObservableDematerialize(ObservableConsumable<Try<Optional<T>>> source) {
24+
super(source);
25+
}
26+
3027
@Override
31-
public Observer<? super Try<Optional<Object>>> apply(Observer<? super Object> t) {
32-
return new DematerializeSubscriber<Object>(t);
28+
public void subscribeActual(Observer<? super T> t) {
29+
source.subscribe(new DematerializeSubscriber<T>(t));
3330
}
3431

3532
static final class DematerializeSubscriber<T> implements Observer<Try<Optional<T>>> {

0 commit comments

Comments
 (0)