@@ -36,24 +36,24 @@ static <R> WithCorrelationIdResolverBuilder<R> assemblerOf(@SuppressWarnings("un
36
36
return AssemblerBuilder ::withCorrelationIdResolver ;
37
37
}
38
38
39
- static <T , ID , R > WithRulesBuilder <T , ID , R > withCorrelationIdResolver (Function <T , ID > correlationIdResolver ) {
39
+ static <T , K , R > WithRulesBuilder <T , K , R > withCorrelationIdResolver (Function <T , K > correlationIdResolver ) {
40
40
41
41
return (rules , aggregationFunction ) -> assemblerAdapter -> {
42
42
43
43
final var queryFunctions = rules .stream ()
44
44
.map (rule -> rule .apply (correlationIdResolver ))
45
45
.toList ();
46
46
47
- final Function <Iterable <T >, Stream <Publisher <? extends Map <ID , ?>>>> subQueryMapperBuilder = topLevelEntities -> queryFunctions .stream ()
47
+ final Function <Iterable <T >, Stream <Publisher <? extends Map <K , ?>>>> subQueryMapperBuilder = topLevelEntities -> queryFunctions .stream ()
48
48
.map (queryFunction -> queryFunction .apply (topLevelEntities ));
49
49
50
- final BiFunction <T , List <Map <ID , ?>>, R > joinMapperResultsFunction =
50
+ final BiFunction <T , List <Map <K , ?>>, R > joinMapperResultsFunction =
51
51
(topLevelEntity , listOfMapperResults ) -> aggregationFunction .apply (topLevelEntity ,
52
52
listOfMapperResults .stream ()
53
53
.map (mapperResult -> mapperResult .get (correlationIdResolver .apply (topLevelEntity )))
54
54
.toArray ());
55
55
56
- final BiFunction <Iterable <T >, List <Map <ID , ?>>, Stream <R >> aggregateStreamBuilder =
56
+ final BiFunction <Iterable <T >, List <Map <K , ?>>, Stream <R >> aggregateStreamBuilder =
57
57
(topLevelEntities , mapperResults ) -> toStream (topLevelEntities )
58
58
.filter (Objects ::nonNull )
59
59
.map (topLevelEntity -> joinMapperResultsFunction .apply (topLevelEntity , mapperResults ));
@@ -65,88 +65,88 @@ static <T, ID, R> WithRulesBuilder<T, ID, R> withCorrelationIdResolver(Function<
65
65
@ FunctionalInterface
66
66
interface WithCorrelationIdResolverBuilder <R > {
67
67
68
- <T , ID > WithRulesBuilder <T , ID , R > withCorrelationIdResolver (Function <T , ID > correlationIdResolver );
68
+ <T , K > WithRulesBuilder <T , K , R > withCorrelationIdResolver (Function <T , K > correlationIdResolver );
69
69
}
70
70
71
71
@ FunctionalInterface
72
- interface WithRulesBuilder <T , ID , R > {
72
+ interface WithRulesBuilder <T , K , R > {
73
73
74
74
@ SuppressWarnings ("unchecked" )
75
- default <E1 > Builder <T , ID , R > withRules (
76
- Rule <T , ID , E1 > rule ,
75
+ default <E1 > Builder <T , K , R > withRules (
76
+ Rule <T , K , E1 > rule ,
77
77
BiFunction <T , E1 , R > aggregationFunction ) {
78
78
79
79
return withRules (List .of (rule ), (t , s ) -> aggregationFunction .apply (t , (E1 ) s [0 ]));
80
80
}
81
81
82
82
@ SuppressWarnings ("unchecked" )
83
- default <E1 , E2 > Builder <T , ID , R > withRules (
84
- Rule <T , ID , E1 > rule1 ,
85
- Rule <T , ID , E2 > rule2 ,
83
+ default <E1 , E2 > Builder <T , K , R > withRules (
84
+ Rule <T , K , E1 > rule1 ,
85
+ Rule <T , K , E2 > rule2 ,
86
86
Function3 <T , E1 , E2 , R > aggregationFunction ) {
87
87
88
88
return withRules (List .of (rule1 , rule2 ), (t , s ) -> aggregationFunction .apply (t , (E1 ) s [0 ], (E2 ) s [1 ]));
89
89
}
90
90
91
91
@ SuppressWarnings ("unchecked" )
92
- default <E1 , E2 , E3 > Builder <T , ID , R > withRules (
93
- Rule <T , ID , E1 > rule1 ,
94
- Rule <T , ID , E2 > rule2 ,
95
- Rule <T , ID , E3 > rule3 ,
92
+ default <E1 , E2 , E3 > Builder <T , K , R > withRules (
93
+ Rule <T , K , E1 > rule1 ,
94
+ Rule <T , K , E2 > rule2 ,
95
+ Rule <T , K , E3 > rule3 ,
96
96
Function4 <T , E1 , E2 , E3 , R > aggregationFunction ) {
97
97
98
98
return withRules (List .of (rule1 , rule2 , rule3 ),
99
99
(t , s ) -> aggregationFunction .apply (t , (E1 ) s [0 ], (E2 ) s [1 ], (E3 ) s [2 ]));
100
100
}
101
101
102
102
@ SuppressWarnings ("unchecked" )
103
- default <E1 , E2 , E3 , E4 > Builder <T , ID , R > withRules (
104
- Rule <T , ID , E1 > rule1 ,
105
- Rule <T , ID , E2 > rule2 ,
106
- Rule <T , ID , E3 > rule3 ,
107
- Rule <T , ID , E4 > rule4 ,
103
+ default <E1 , E2 , E3 , E4 > Builder <T , K , R > withRules (
104
+ Rule <T , K , E1 > rule1 ,
105
+ Rule <T , K , E2 > rule2 ,
106
+ Rule <T , K , E3 > rule3 ,
107
+ Rule <T , K , E4 > rule4 ,
108
108
Function5 <T , E1 , E2 , E3 , E4 , R > aggregationFunction ) {
109
109
110
110
return withRules (List .of (rule1 , rule2 , rule3 , rule4 ),
111
111
(t , s ) -> aggregationFunction .apply (t , (E1 ) s [0 ], (E2 ) s [1 ], (E3 ) s [2 ], (E4 ) s [3 ]));
112
112
}
113
113
114
114
@ SuppressWarnings ("unchecked" )
115
- default <E1 , E2 , E3 , E4 , E5 > Builder <T , ID , R > withRules (
116
- Rule <T , ID , E1 > rule1 ,
117
- Rule <T , ID , E2 > rule2 ,
118
- Rule <T , ID , E3 > rule3 ,
119
- Rule <T , ID , E4 > rule4 ,
120
- Rule <T , ID , E5 > rule5 ,
115
+ default <E1 , E2 , E3 , E4 , E5 > Builder <T , K , R > withRules (
116
+ Rule <T , K , E1 > rule1 ,
117
+ Rule <T , K , E2 > rule2 ,
118
+ Rule <T , K , E3 > rule3 ,
119
+ Rule <T , K , E4 > rule4 ,
120
+ Rule <T , K , E5 > rule5 ,
121
121
Function6 <T , E1 , E2 , E3 , E4 , E5 , R > aggregationFunction ) {
122
122
123
123
return withRules (List .of (rule1 , rule2 , rule3 , rule4 , rule5 ),
124
124
(t , s ) -> aggregationFunction .apply (t , (E1 ) s [0 ], (E2 ) s [1 ], (E3 ) s [2 ], (E4 ) s [3 ], (E5 ) s [4 ]));
125
125
}
126
126
127
127
@ SuppressWarnings ("unchecked" )
128
- default <E1 , E2 , E3 , E4 , E5 , E6 > Builder <T , ID , R > withRules (
129
- Rule <T , ID , E1 > rule1 ,
130
- Rule <T , ID , E2 > rule2 ,
131
- Rule <T , ID , E3 > rule3 ,
132
- Rule <T , ID , E4 > rule4 ,
133
- Rule <T , ID , E5 > rule5 ,
134
- Rule <T , ID , E6 > rule6 ,
128
+ default <E1 , E2 , E3 , E4 , E5 , E6 > Builder <T , K , R > withRules (
129
+ Rule <T , K , E1 > rule1 ,
130
+ Rule <T , K , E2 > rule2 ,
131
+ Rule <T , K , E3 > rule3 ,
132
+ Rule <T , K , E4 > rule4 ,
133
+ Rule <T , K , E5 > rule5 ,
134
+ Rule <T , K , E6 > rule6 ,
135
135
Function7 <T , E1 , E2 , E3 , E4 , E5 , E6 , R > aggregationFunction ) {
136
136
137
137
return withRules (List .of (rule1 , rule2 , rule3 , rule4 , rule5 , rule6 ),
138
138
(t , s ) -> aggregationFunction .apply (t , (E1 ) s [0 ], (E2 ) s [1 ], (E3 ) s [2 ], (E4 ) s [3 ], (E5 ) s [4 ], (E6 ) s [5 ]));
139
139
}
140
140
141
141
@ SuppressWarnings ("unchecked" )
142
- default <E1 , E2 , E3 , E4 , E5 , E6 , E7 > Builder <T , ID , R > withRules (
143
- Rule <T , ID , E1 > rule1 ,
144
- Rule <T , ID , E2 > rule2 ,
145
- Rule <T , ID , E3 > rule3 ,
146
- Rule <T , ID , E4 > rule4 ,
147
- Rule <T , ID , E5 > rule5 ,
148
- Rule <T , ID , E6 > rule6 ,
149
- Rule <T , ID , E7 > rule7 ,
142
+ default <E1 , E2 , E3 , E4 , E5 , E6 , E7 > Builder <T , K , R > withRules (
143
+ Rule <T , K , E1 > rule1 ,
144
+ Rule <T , K , E2 > rule2 ,
145
+ Rule <T , K , E3 > rule3 ,
146
+ Rule <T , K , E4 > rule4 ,
147
+ Rule <T , K , E5 > rule5 ,
148
+ Rule <T , K , E6 > rule6 ,
149
+ Rule <T , K , E7 > rule7 ,
150
150
Function8 <T , E1 , E2 , E3 , E4 , E5 , E6 , E7 , R > aggregationFunction ) {
151
151
152
152
return withRules (List .of (rule1 , rule2 , rule3 , rule4 , rule5 , rule6 , rule7 ),
@@ -155,15 +155,15 @@ default <E1, E2, E3, E4, E5, E6, E7> Builder<T, ID, R> withRules(
155
155
}
156
156
157
157
@ SuppressWarnings ("unchecked" )
158
- default <E1 , E2 , E3 , E4 , E5 , E6 , E7 , E8 > Builder <T , ID , R > withRules (
159
- Rule <T , ID , E1 > rule1 ,
160
- Rule <T , ID , E2 > rule2 ,
161
- Rule <T , ID , E3 > rule3 ,
162
- Rule <T , ID , E4 > rule4 ,
163
- Rule <T , ID , E5 > rule5 ,
164
- Rule <T , ID , E6 > rule6 ,
165
- Rule <T , ID , E7 > rule7 ,
166
- Rule <T , ID , E8 > rule8 ,
158
+ default <E1 , E2 , E3 , E4 , E5 , E6 , E7 , E8 > Builder <T , K , R > withRules (
159
+ Rule <T , K , E1 > rule1 ,
160
+ Rule <T , K , E2 > rule2 ,
161
+ Rule <T , K , E3 > rule3 ,
162
+ Rule <T , K , E4 > rule4 ,
163
+ Rule <T , K , E5 > rule5 ,
164
+ Rule <T , K , E6 > rule6 ,
165
+ Rule <T , K , E7 > rule7 ,
166
+ Rule <T , K , E8 > rule8 ,
167
167
Function9 <T , E1 , E2 , E3 , E4 , E5 , E6 , E7 , E8 , R > aggregationFunction ) {
168
168
169
169
return withRules (List .of (rule1 , rule2 , rule3 , rule4 , rule5 , rule6 , rule7 , rule8 ),
@@ -172,16 +172,16 @@ default <E1, E2, E3, E4, E5, E6, E7, E8> Builder<T, ID, R> withRules(
172
172
}
173
173
174
174
@ SuppressWarnings ("unchecked" )
175
- default <E1 , E2 , E3 , E4 , E5 , E6 , E7 , E8 , E9 > Builder <T , ID , R > withRules (
176
- Rule <T , ID , E1 > rule1 ,
177
- Rule <T , ID , E2 > rule2 ,
178
- Rule <T , ID , E3 > rule3 ,
179
- Rule <T , ID , E4 > rule4 ,
180
- Rule <T , ID , E5 > rule5 ,
181
- Rule <T , ID , E6 > rule6 ,
182
- Rule <T , ID , E7 > rule7 ,
183
- Rule <T , ID , E8 > rule8 ,
184
- Rule <T , ID , E9 > rule9 ,
175
+ default <E1 , E2 , E3 , E4 , E5 , E6 , E7 , E8 , E9 > Builder <T , K , R > withRules (
176
+ Rule <T , K , E1 > rule1 ,
177
+ Rule <T , K , E2 > rule2 ,
178
+ Rule <T , K , E3 > rule3 ,
179
+ Rule <T , K , E4 > rule4 ,
180
+ Rule <T , K , E5 > rule5 ,
181
+ Rule <T , K , E6 > rule6 ,
182
+ Rule <T , K , E7 > rule7 ,
183
+ Rule <T , K , E8 > rule8 ,
184
+ Rule <T , K , E9 > rule9 ,
185
185
Function10 <T , E1 , E2 , E3 , E4 , E5 , E6 , E7 , E8 , E9 , R > aggregationFunction ) {
186
186
187
187
return withRules (List .of (rule1 , rule2 , rule3 , rule4 , rule5 , rule6 , rule7 , rule8 , rule9 ),
@@ -190,17 +190,17 @@ default <E1, E2, E3, E4, E5, E6, E7, E8, E9> Builder<T, ID, R> withRules(
190
190
}
191
191
192
192
@ SuppressWarnings ("unchecked" )
193
- default <E1 , E2 , E3 , E4 , E5 , E6 , E7 , E8 , E9 , E10 > Builder <T , ID , R > withRules (
194
- Rule <T , ID , E1 > rule1 ,
195
- Rule <T , ID , E2 > rule2 ,
196
- Rule <T , ID , E3 > rule3 ,
197
- Rule <T , ID , E4 > rule4 ,
198
- Rule <T , ID , E5 > rule5 ,
199
- Rule <T , ID , E6 > rule6 ,
200
- Rule <T , ID , E7 > rule7 ,
201
- Rule <T , ID , E8 > rule8 ,
202
- Rule <T , ID , E9 > rule9 ,
203
- Rule <T , ID , E10 > rule10 ,
193
+ default <E1 , E2 , E3 , E4 , E5 , E6 , E7 , E8 , E9 , E10 > Builder <T , K , R > withRules (
194
+ Rule <T , K , E1 > rule1 ,
195
+ Rule <T , K , E2 > rule2 ,
196
+ Rule <T , K , E3 > rule3 ,
197
+ Rule <T , K , E4 > rule4 ,
198
+ Rule <T , K , E5 > rule5 ,
199
+ Rule <T , K , E6 > rule6 ,
200
+ Rule <T , K , E7 > rule7 ,
201
+ Rule <T , K , E8 > rule8 ,
202
+ Rule <T , K , E9 > rule9 ,
203
+ Rule <T , K , E10 > rule10 ,
204
204
Function11 <T , E1 , E2 , E3 , E4 , E5 , E6 , E7 , E8 , E9 , E10 , R > aggregationFunction ) {
205
205
206
206
return withRules (List .of (rule1 , rule2 , rule3 , rule4 , rule5 , rule6 , rule7 , rule8 , rule9 , rule10 ),
@@ -209,30 +209,30 @@ default <E1, E2, E3, E4, E5, E6, E7, E8, E9, E10> Builder<T, ID, R> withRules(
209
209
}
210
210
211
211
@ SuppressWarnings ("unchecked" )
212
- default <E1 , E2 , E3 , E4 , E5 , E6 , E7 , E8 , E9 , E10 , E11 > Builder <T , ID , R > withRules (
213
- Rule <T , ID , E1 > rule1 ,
214
- Rule <T , ID , E2 > rule2 ,
215
- Rule <T , ID , E3 > rule3 ,
216
- Rule <T , ID , E4 > rule4 ,
217
- Rule <T , ID , E5 > rule5 ,
218
- Rule <T , ID , E6 > rule6 ,
219
- Rule <T , ID , E7 > rule7 ,
220
- Rule <T , ID , E8 > rule8 ,
221
- Rule <T , ID , E9 > rule9 ,
222
- Rule <T , ID , E10 > rule10 ,
223
- Rule <T , ID , E11 > rule11 ,
212
+ default <E1 , E2 , E3 , E4 , E5 , E6 , E7 , E8 , E9 , E10 , E11 > Builder <T , K , R > withRules (
213
+ Rule <T , K , E1 > rule1 ,
214
+ Rule <T , K , E2 > rule2 ,
215
+ Rule <T , K , E3 > rule3 ,
216
+ Rule <T , K , E4 > rule4 ,
217
+ Rule <T , K , E5 > rule5 ,
218
+ Rule <T , K , E6 > rule6 ,
219
+ Rule <T , K , E7 > rule7 ,
220
+ Rule <T , K , E8 > rule8 ,
221
+ Rule <T , K , E9 > rule9 ,
222
+ Rule <T , K , E10 > rule10 ,
223
+ Rule <T , K , E11 > rule11 ,
224
224
Function12 <T , E1 , E2 , E3 , E4 , E5 , E6 , E7 , E8 , E9 , E10 , E11 , R > aggregationFunction ) {
225
225
226
226
return withRules (List .of (rule1 , rule2 , rule3 , rule4 , rule5 , rule6 , rule7 , rule8 , rule9 , rule10 , rule11 ),
227
227
(t , s ) -> aggregationFunction .apply (
228
228
t , (E1 ) s [0 ], (E2 ) s [1 ], (E3 ) s [2 ], (E4 ) s [3 ], (E5 ) s [4 ], (E6 ) s [5 ], (E7 ) s [6 ], (E8 ) s [7 ], (E9 ) s [8 ], (E10 ) s [9 ], (E11 ) s [10 ]));
229
229
}
230
230
231
- Builder <T , ID , R > withRules (List <Rule <T , ID , ?>> rules , BiFunction <T , Object [], R > aggregationFunction );
231
+ Builder <T , K , R > withRules (List <Rule <T , K , ?>> rules , BiFunction <T , Object [], R > aggregationFunction );
232
232
}
233
233
234
234
@ FunctionalInterface
235
- interface Builder <T , ID , R > {
235
+ interface Builder <T , K , R > {
236
236
237
237
default Assembler <T , R > build () {
238
238
return build (fluxAdapter ());
@@ -242,6 +242,6 @@ default Assembler<T, R> build(Scheduler scheduler) {
242
242
return build (fluxAdapter (scheduler ));
243
243
}
244
244
245
- Assembler <T , R > build (AssemblerAdapter <T , ID , R > adapter );
245
+ Assembler <T , R > build (AssemblerAdapter <T , K , R > adapter );
246
246
}
247
247
}
0 commit comments