Skip to content

Commit 959b0d8

Browse files
author
jmhofer
committed
made WINDOW_MAKER typed
1 parent 09cac83 commit 959b0d8

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

rxjava-core/src/main/java/rx/operators/OperationWindow.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,14 @@
4343

4444
public final class OperationWindow extends ChunkedOperation {
4545

46-
public static final Func0 WINDOW_MAKER = new Func0() {
47-
@Override
48-
public Object call() {
49-
return new Window();
50-
}
51-
};
46+
public static <T> Func0<Window<T>> windowMaker() {
47+
return new Func0<Window<T>>() {
48+
@Override
49+
public Window<T> call() {
50+
return new Window<T>();
51+
}
52+
};
53+
}
5254

5355
/**
5456
* <p>This method creates a {@link rx.util.functions.Func1} object which represents the window operation. This operation takes
@@ -74,7 +76,7 @@ public static <T> OnSubscribeFunc<Observable<T>> window(final Observable<T> sour
7476
return new OnSubscribeFunc<Observable<T>>() {
7577
@Override
7678
public Subscription onSubscribe(final Observer<? super Observable<T>> observer) {
77-
NonOverlappingChunks<T, Observable<T>> windows = new NonOverlappingChunks<T, Observable<T>>(observer, WINDOW_MAKER);
79+
NonOverlappingChunks<T, Observable<T>> windows = new NonOverlappingChunks<T, Observable<T>>(observer, windowMaker());
7880
ChunkCreator creator = new ObservableBasedSingleChunkCreator<T, Observable<T>>(windows, windowClosingSelector);
7981
return source.subscribe(new ChunkObserver<T, Observable<T>>(windows, observer, creator));
8082
}
@@ -111,7 +113,7 @@ public static <T> OnSubscribeFunc<Observable<T>> window(final Observable<T> sour
111113
return new OnSubscribeFunc<Observable<T>>() {
112114
@Override
113115
public Subscription onSubscribe(final Observer<? super Observable<T>> observer) {
114-
OverlappingChunks<T, Observable<T>> windows = new OverlappingChunks<T, Observable<T>>(observer, WINDOW_MAKER);
116+
OverlappingChunks<T, Observable<T>> windows = new OverlappingChunks<T, Observable<T>>(observer, windowMaker());
115117
ChunkCreator creator = new ObservableBasedMultiChunkCreator<T, Observable<T>>(windows, windowOpenings, windowClosingSelector);
116118
return source.subscribe(new ChunkObserver<T, Observable<T>>(windows, observer, creator));
117119
}
@@ -166,7 +168,7 @@ public static <T> OnSubscribeFunc<Observable<T>> window(final Observable<T> sour
166168
return new OnSubscribeFunc<Observable<T>>() {
167169
@Override
168170
public Subscription onSubscribe(final Observer<? super Observable<T>> observer) {
169-
Chunks<T, Observable<T>> chunks = new SizeBasedChunks<T, Observable<T>>(observer, WINDOW_MAKER, count);
171+
Chunks<T, Observable<T>> chunks = new SizeBasedChunks<T, Observable<T>>(observer, windowMaker(), count);
170172
ChunkCreator creator = new SkippingChunkCreator<T, Observable<T>>(chunks, skip);
171173
return source.subscribe(new ChunkObserver<T, Observable<T>>(chunks, observer, creator));
172174
}
@@ -221,7 +223,7 @@ public static <T> OnSubscribeFunc<Observable<T>> window(final Observable<T> sour
221223
return new OnSubscribeFunc<Observable<T>>() {
222224
@Override
223225
public Subscription onSubscribe(final Observer<? super Observable<T>> observer) {
224-
NonOverlappingChunks<T, Observable<T>> windows = new NonOverlappingChunks<T, Observable<T>>(observer, WINDOW_MAKER);
226+
NonOverlappingChunks<T, Observable<T>> windows = new NonOverlappingChunks<T, Observable<T>>(observer, windowMaker());
225227
ChunkCreator creator = new TimeBasedChunkCreator<T, Observable<T>>(windows, timespan, unit, scheduler);
226228
return source.subscribe(new ChunkObserver<T, Observable<T>>(windows, observer, creator));
227229
}
@@ -282,7 +284,7 @@ public static <T> OnSubscribeFunc<Observable<T>> window(final Observable<T> sour
282284
return new OnSubscribeFunc<Observable<T>>() {
283285
@Override
284286
public Subscription onSubscribe(final Observer<? super Observable<T>> observer) {
285-
Chunks<T, Observable<T>> chunks = new TimeAndSizeBasedChunks<T, Observable<T>>(observer, WINDOW_MAKER, count, timespan, unit, scheduler);
287+
Chunks<T, Observable<T>> chunks = new TimeAndSizeBasedChunks<T, Observable<T>>(observer, windowMaker(), count, timespan, unit, scheduler);
286288
ChunkCreator creator = new SingleChunkCreator<T, Observable<T>>(chunks);
287289
return source.subscribe(new ChunkObserver<T, Observable<T>>(chunks, observer, creator));
288290
}
@@ -343,7 +345,7 @@ public static <T> OnSubscribeFunc<Observable<T>> window(final Observable<T> sour
343345
return new OnSubscribeFunc<Observable<T>>() {
344346
@Override
345347
public Subscription onSubscribe(final Observer<? super Observable<T>> observer) {
346-
OverlappingChunks<T, Observable<T>> windows = new TimeBasedChunks<T, Observable<T>>(observer, WINDOW_MAKER, timespan, unit, scheduler);
348+
OverlappingChunks<T, Observable<T>> windows = new TimeBasedChunks<T, Observable<T>>(observer, windowMaker(), timespan, unit, scheduler);
347349
ChunkCreator creator = new TimeBasedChunkCreator<T, Observable<T>>(windows, timeshift, unit, scheduler);
348350
return source.subscribe(new ChunkObserver<T, Observable<T>>(windows, observer, creator));
349351
}
@@ -373,7 +375,6 @@ public static class UnitTest {
373375
private TestScheduler scheduler;
374376

375377
@Before
376-
@SuppressWarnings("unchecked")
377378
public void before() {
378379
scheduler = new TestScheduler();
379380
}

0 commit comments

Comments
 (0)