@@ -16,12 +16,10 @@ package org.modelix.modelql.core
16
16
import com.badoo.reaktive.observable.Observable
17
17
import com.badoo.reaktive.observable.asObservable
18
18
import com.badoo.reaktive.observable.flatMap
19
- import com.badoo.reaktive.observable.flatMapSingle
20
19
import com.badoo.reaktive.observable.map
21
20
import com.badoo.reaktive.observable.toList
22
21
import com.badoo.reaktive.observable.zip
23
22
import com.badoo.reaktive.single.asObservable
24
- import com.badoo.reaktive.single.flatMapObservable
25
23
import com.badoo.reaktive.single.map
26
24
import kotlinx.serialization.ExperimentalSerializationApi
27
25
import kotlinx.serialization.KSerializer
@@ -36,7 +34,6 @@ import kotlinx.serialization.encoding.Encoder
36
34
import kotlinx.serialization.encoding.decodeStructure
37
35
import kotlinx.serialization.encoding.encodeCollection
38
36
import org.modelix.streams.assertNotEmpty
39
- import org.modelix.streams.exactlyOne
40
37
41
38
open class ZipStep <CommonIn , Out : ZipNOutputC <CommonIn >>() : ProducingStep<Out>(), IConsumingStep<CommonIn>, IMonoStep<Out>, IFluxStep<Out> {
42
39
private val producers = ArrayList <IProducingStep <CommonIn >>()
@@ -103,24 +100,6 @@ open class ZipStep<CommonIn, Out : ZipNOutputC<CommonIn>>() : ProducingStep<Out>
103
100
}
104
101
}
105
102
106
- // optimization if all inputs are mono steps
107
- if (producers.all { it.isSingle() }) {
108
- return inputFlows.asObservable().flatMapSingle { it.exactlyOne() }.toList().map { ZipStepOutput <Out , CommonIn >(it) }.asObservable()
109
- }
110
-
111
- // optimization for a pair of flux and mono inputs
112
- if (producers.size == 2 ) {
113
- if (producers[0 ].isSingle()) {
114
- return inputFlows[0 ].exactlyOne().flatMapObservable { value0 ->
115
- inputFlows[1 ].map { value1 -> ZipStepOutput (listOf (value0, value1)) }
116
- }
117
- } else if (producers[1 ].isSingle()) {
118
- return inputFlows[1 ].exactlyOne().flatMapObservable { value1 ->
119
- inputFlows[0 ].map { value0 -> ZipStepOutput (listOf (value0, value1)) }
120
- }
121
- }
122
- }
123
-
124
103
return inputFlows.zipRepeating().map { ZipStepOutput <Out , CommonIn >(it) }
125
104
}
126
105
}
0 commit comments