23
23
import io .reactivex .disposables .*;
24
24
import io .reactivex .exceptions .Exceptions ;
25
25
import io .reactivex .functions .*;
26
- import io .reactivex .internal .disposables .EmptyDisposable ;
27
26
import io .reactivex .internal .functions .Functions ;
28
27
import io .reactivex .internal .functions .Objects ;
29
28
import io .reactivex .internal .operators .flowable .FlowableFromObservable ;
43
42
public abstract class Observable <T > implements ObservableSource <T > {
44
43
static final Object OBJECT = new Object ();
45
44
46
- /** An empty observable instance as there is no need to instantiate this more than once. */
47
- static final Observable <Object > EMPTY = new Observable <Object >() {
48
- @ Override
49
- protected void subscribeActual (Observer <? super Object > o ) {
50
- o .onSubscribe (EmptyDisposable .INSTANCE );
51
- o .onComplete ();
52
- }
53
- };
54
-
55
- /** A never observable instance as there is no need to instantiate this more than once. */
56
- static final Observable <Object > NEVER = new Observable <Object >() {
57
- @ Override
58
- protected void subscribeActual (Observer <? super Object > o ) {
59
- o .onSubscribe (EmptyDisposable .INSTANCE );
60
- }
61
- };
62
-
63
45
public static <T > Observable <T > amb (Iterable <? extends ObservableSource <? extends T >> sources ) {
64
46
Objects .requireNonNull (sources , "sources is null" );
65
47
return new ObservableAmb <T >(null , sources );
@@ -368,7 +350,7 @@ public static <T> Observable<T> defer(Callable<? extends ObservableSource<? exte
368
350
@ SchedulerSupport (SchedulerSupport .NONE )
369
351
@ SuppressWarnings ("unchecked" )
370
352
public static <T > Observable <T > empty () {
371
- return (Observable <T >)EMPTY ;
353
+ return (Observable <T >) ObservableEmpty . INSTANCE ;
372
354
}
373
355
374
356
@ SchedulerSupport (SchedulerSupport .NONE )
@@ -445,35 +427,7 @@ public static <T> Observable<T> fromIterable(Iterable<? extends T> source) {
445
427
446
428
public static <T > Observable <T > fromPublisher (final Publisher <? extends T > publisher ) {
447
429
Objects .requireNonNull (publisher , "publisher is null" );
448
- return new Observable <T >() {
449
- @ Override
450
- protected void subscribeActual (final Observer <? super T > o ) {
451
- publisher .subscribe (new Subscriber <T >() {
452
-
453
- @ Override
454
- public void onComplete () {
455
- o .onComplete ();
456
- }
457
-
458
- @ Override
459
- public void onError (Throwable t ) {
460
- o .onError (t );
461
- }
462
-
463
- @ Override
464
- public void onNext (T t ) {
465
- o .onNext (t );
466
- }
467
-
468
- @ Override
469
- public void onSubscribe (Subscription inner ) {
470
- o .onSubscribe (Disposables .from (inner ));
471
- inner .request (Long .MAX_VALUE );
472
- }
473
-
474
- });
475
- }
476
- };
430
+ return new ObservableFromPublisher <T >(publisher );
477
431
}
478
432
479
433
@ SchedulerSupport (SchedulerSupport .NONE )
@@ -850,7 +804,7 @@ public static <T> Observable<T> mergeDelayError(ObservableSource<? extends T>...
850
804
@ SchedulerSupport (SchedulerSupport .NONE )
851
805
@ SuppressWarnings ("unchecked" )
852
806
public static <T > Observable <T > never () {
853
- return (Observable <T >)NEVER ;
807
+ return (Observable <T >) ObservableNever . INSTANCE ;
854
808
}
855
809
856
810
@ SchedulerSupport (SchedulerSupport .NONE )
@@ -867,21 +821,7 @@ public static Observable<Integer> range(final int start, final int count) {
867
821
if ((long )start + (count - 1 ) > Integer .MAX_VALUE ) {
868
822
throw new IllegalArgumentException ("Integer overflow" );
869
823
}
870
- return new Observable <Integer >() {
871
- @ Override
872
- protected void subscribeActual (Observer <? super Integer > o ) {
873
- Disposable d = Disposables .empty ();
874
- o .onSubscribe (d );
875
-
876
- long end = start - 1L + count ;
877
- for (long i = start ; i <= end && !d .isDisposed (); i ++) {
878
- o .onNext ((int )i );
879
- }
880
- if (!d .isDisposed ()) {
881
- o .onComplete ();
882
- }
883
- }
884
- };
824
+ return new ObservableRange (start , count );
885
825
}
886
826
887
827
@ SchedulerSupport (SchedulerSupport .NONE )
@@ -1110,13 +1050,7 @@ public final Observable<Boolean> any(Predicate<? super T> predicate) {
1110
1050
1111
1051
@ SchedulerSupport (SchedulerSupport .NONE )
1112
1052
public final Observable <T > asObservable () {
1113
- final Observable <T > outer = this ;
1114
- return new Observable <T >() {
1115
- @ Override
1116
- protected void subscribeActual (Observer <? super T > o ) {
1117
- outer .subscribe (o );
1118
- }
1119
- };
1053
+ return new ObservableWrapper <T >(this );
1120
1054
}
1121
1055
1122
1056
@ SchedulerSupport (SchedulerSupport .NONE )
@@ -3303,6 +3237,4 @@ public final <U, R> Observable<R> zipWith(ObservableSource<? extends U> other, B
3303
3237
public final <U , R > Observable <R > zipWith (ObservableSource <? extends U > other , BiFunction <? super T , ? super U , ? extends R > zipper , boolean delayError , int bufferSize ) {
3304
3238
return zip (this , other , zipper , delayError , bufferSize );
3305
3239
}
3306
-
3307
-
3308
- }
3240
+ }
0 commit comments