@@ -47,17 +47,24 @@ public abstract class ReactiveWrapperConverters {
47
47
48
48
static {
49
49
50
+ if (RXJAVA1_PRESENT ) {
51
+ REACTIVE_WRAPPERS .add (RxJava1SingleWrapper .INSTANCE );
52
+ REACTIVE_WRAPPERS .add (RxJava1ObservableWrapper .INSTANCE );
53
+ }
54
+
55
+ if (RXJAVA2_PRESENT ) {
56
+ REACTIVE_WRAPPERS .add (RxJava2SingleWrapper .INSTANCE );
57
+ REACTIVE_WRAPPERS .add (RxJava2MaybeWrapper .INSTANCE );
58
+ REACTIVE_WRAPPERS .add (RxJava2ObservableWrapper .INSTANCE );
59
+ REACTIVE_WRAPPERS .add (RxJava2FlowableWrapper .INSTANCE );
60
+ }
61
+
50
62
if (PROJECT_REACTOR_PRESENT ) {
51
63
REACTIVE_WRAPPERS .add (FluxWrapper .INSTANCE );
52
64
REACTIVE_WRAPPERS .add (MonoWrapper .INSTANCE );
53
65
REACTIVE_WRAPPERS .add (PublisherWrapper .INSTANCE );
54
66
}
55
67
56
- if (RXJAVA1_PRESENT ) {
57
- REACTIVE_WRAPPERS .add (RxJava1SingleWrapper .INSTANCE );
58
- REACTIVE_WRAPPERS .add (RxJava1ObservableWrapper .INSTANCE );
59
- }
60
-
61
68
QueryExecutionConverters .registerConvertersIn (GENERIC_CONVERSION_SERVICE );
62
69
}
63
70
@@ -126,6 +133,7 @@ public static <T> T toWrapper(Object stream, Class<? extends T> expectedWrapperT
126
133
* @param converter must not be {@literal null}.
127
134
* @return
128
135
*/
136
+ @ SuppressWarnings ("unchecked" )
129
137
public static <T > T map (Object stream , Converter <Object , Object > converter ) {
130
138
131
139
Assert .notNull (stream , "Stream must not be null!" );
@@ -252,6 +260,62 @@ public Observable<?> map(Object wrapper, Converter<Object, Object> converter) {
252
260
}
253
261
}
254
262
263
+ private static class RxJava2SingleWrapper extends AbstractReactiveWrapper <io .reactivex .Single <?>> {
264
+
265
+ static final RxJava2SingleWrapper INSTANCE = new RxJava2SingleWrapper ();
266
+
267
+ private RxJava2SingleWrapper () {
268
+ super (io .reactivex .Single .class , Multiplicity .ONE );
269
+ }
270
+
271
+ @ Override
272
+ public io .reactivex .Single <?> map (Object wrapper , Converter <Object , Object > converter ) {
273
+ return ((io .reactivex .Single <?>) wrapper ).map (converter ::convert );
274
+ }
275
+ }
276
+
277
+ private static class RxJava2MaybeWrapper extends AbstractReactiveWrapper <io .reactivex .Maybe <?>> {
278
+
279
+ static final RxJava2MaybeWrapper INSTANCE = new RxJava2MaybeWrapper ();
280
+
281
+ private RxJava2MaybeWrapper () {
282
+ super (io .reactivex .Maybe .class , Multiplicity .MANY );
283
+ }
284
+
285
+ @ Override
286
+ public io .reactivex .Maybe <?> map (Object wrapper , Converter <Object , Object > converter ) {
287
+ return ((io .reactivex .Maybe <?>) wrapper ).map (converter ::convert );
288
+ }
289
+ }
290
+
291
+ private static class RxJava2ObservableWrapper extends AbstractReactiveWrapper <io .reactivex .Observable <?>> {
292
+
293
+ static final RxJava2ObservableWrapper INSTANCE = new RxJava2ObservableWrapper ();
294
+
295
+ private RxJava2ObservableWrapper () {
296
+ super (io .reactivex .Observable .class , Multiplicity .MANY );
297
+ }
298
+
299
+ @ Override
300
+ public io .reactivex .Observable <?> map (Object wrapper , Converter <Object , Object > converter ) {
301
+ return ((io .reactivex .Observable <?>) wrapper ).map (converter ::convert );
302
+ }
303
+ }
304
+
305
+ private static class RxJava2FlowableWrapper extends AbstractReactiveWrapper <io .reactivex .Flowable <?>> {
306
+
307
+ static final RxJava2FlowableWrapper INSTANCE = new RxJava2FlowableWrapper ();
308
+
309
+ private RxJava2FlowableWrapper () {
310
+ super (io .reactivex .Flowable .class , Multiplicity .MANY );
311
+ }
312
+
313
+ @ Override
314
+ public io .reactivex .Flowable <?> map (Object wrapper , Converter <Object , Object > converter ) {
315
+ return ((io .reactivex .Flowable <?>) wrapper ).map (converter ::convert );
316
+ }
317
+ }
318
+
255
319
private enum Multiplicity {
256
320
ONE , MANY ,
257
321
}
0 commit comments