25
25
import java .util .HashMap ;
26
26
import java .util .List ;
27
27
import java .util .Map ;
28
+ import java .util .SortedMap ;
28
29
import java .util .TreeMap ;
29
30
import java .util .stream .Collectors ;
30
31
import java .util .stream .Stream ;
@@ -60,26 +61,25 @@ public final class FixtureMonkey {
60
61
private final MonkeyContext monkeyContext ;
61
62
private final List <MatcherOperator <? extends ArbitraryBuilder <?>>> registeredArbitraryBuilders = new ArrayList <>();
62
63
private final MonkeyManipulatorFactory monkeyManipulatorFactory ;
63
- private final Map <Integer , List <MatcherOperator <? extends ArbitraryBuilder <?>>>>
64
- priorityGroupedMatchers = new HashMap <>();
65
64
66
65
public FixtureMonkey (
67
66
FixtureMonkeyOptions fixtureMonkeyOptions ,
68
67
ArbitraryTraverser traverser ,
69
68
ManipulatorOptimizer manipulatorOptimizer ,
70
69
MonkeyContext monkeyContext ,
71
- List <PriorityMatcherOperator > registeredArbitraryBuilders ,
70
+ List <PriorityMatcherOperator > registeredArbitraryBuildersWithPriority ,
72
71
MonkeyManipulatorFactory monkeyManipulatorFactory ,
73
- Map <String , PriorityMatcherOperator > mapsByRegisteredName
72
+ Map <String , PriorityMatcherOperator > registeredPriorityMatchersByName
74
73
) {
75
74
this .fixtureMonkeyOptions = fixtureMonkeyOptions ;
76
75
this .traverser = traverser ;
77
76
this .manipulatorOptimizer = manipulatorOptimizer ;
78
77
this .monkeyContext = monkeyContext ;
79
78
this .monkeyManipulatorFactory = monkeyManipulatorFactory ;
80
- groupMatchersByPriorityFromList (registeredArbitraryBuilders );
81
- groupMatchersByPriorityFromNamedMap (mapsByRegisteredName );
82
- shuffleAndRegisterByPriority (priorityGroupedMatchers );
79
+ Map <Integer , List <MatcherOperator <? extends ArbitraryBuilder <?>>>> registeredGroupMatchersListByPriority =
80
+ groupMatchersByPriority (registeredArbitraryBuildersWithPriority );
81
+ groupMatchersByPriorityFromNamedMap (registeredPriorityMatchersByName , registeredGroupMatchersListByPriority );
82
+ shuffleAndRegisterByPriority (registeredGroupMatchersListByPriority );
83
83
}
84
84
85
85
public static FixtureMonkeyBuilder builder () {
@@ -196,29 +196,29 @@ public <T> Arbitrary<T> giveMeArbitrary(TypeReference<T> typeReference) {
196
196
return this .giveMeBuilder (typeReference ).build ();
197
197
}
198
198
199
- private void groupMatchersByPriorityFromList (
200
- List <PriorityMatcherOperator > registeredArbitraryBuilders
199
+ private Map < Integer , List < MatcherOperator <? extends ArbitraryBuilder <?>>>> groupMatchersByPriority (
200
+ List <PriorityMatcherOperator > registeredArbitraryBuildersWithPriority
201
201
) {
202
- priorityGroupedMatchers .putAll (
203
- registeredArbitraryBuilders
204
- .stream ()
205
- .collect (Collectors .groupingBy (
206
- PriorityMatcherOperator ::getPriority ,
207
- Collectors .mapping (
208
- it -> new MatcherOperator <>(
209
- it .getMatcherOperator (), it .getMatcherOperator ().getOperator ().apply (this )
210
- ),
211
- Collectors .toList ()
212
- )
213
- ))
202
+ return new HashMap <>(registeredArbitraryBuildersWithPriority
203
+ .stream ()
204
+ .collect (Collectors .groupingBy (
205
+ PriorityMatcherOperator ::getPriority ,
206
+ Collectors .mapping (
207
+ it -> new MatcherOperator <>(
208
+ it .getMatcherOperator (), it .getMatcherOperator ().getOperator ().apply (this )
209
+ ),
210
+ Collectors .toList ()
211
+ )
212
+ ))
214
213
);
215
214
}
216
215
217
216
private void groupMatchersByPriorityFromNamedMap (
218
- Map <String , PriorityMatcherOperator > mapsByRegisteredName
217
+ Map <String , PriorityMatcherOperator > registeredPriorityMatchersByName ,
218
+ Map <Integer , List <MatcherOperator <? extends ArbitraryBuilder <?>>>> registeredGroupMatchersListByPriority
219
219
) {
220
- priorityGroupedMatchers .putAll (
221
- mapsByRegisteredName .entrySet ().stream ()
220
+ registeredGroupMatchersListByPriority .putAll (
221
+ registeredPriorityMatchersByName .entrySet ().stream ()
222
222
.collect (Collectors .groupingBy (
223
223
entry -> entry .getValue ().getPriority (),
224
224
Collectors .mapping (
@@ -233,10 +233,10 @@ private void groupMatchersByPriorityFromNamedMap(
233
233
}
234
234
235
235
private void shuffleAndRegisterByPriority (
236
- Map <Integer , List <MatcherOperator <? extends ArbitraryBuilder <?>>>> groupedByPriority
236
+ Map <Integer , List <MatcherOperator <? extends ArbitraryBuilder <?>>>> registeredGroupMatchersListByPriority
237
237
) {
238
- TreeMap <Integer , List <MatcherOperator <? extends ArbitraryBuilder <?>>>> sortedGroupedByPriority =
239
- new TreeMap <>(groupedByPriority );
238
+ SortedMap <Integer , List <MatcherOperator <? extends ArbitraryBuilder <?>>>> sortedGroupedByPriority =
239
+ new TreeMap <>(registeredGroupMatchersListByPriority );
240
240
241
241
sortedGroupedByPriority .forEach ((priority , matcherOperators ) -> {
242
242
Collections .shuffle (matcherOperators , Randoms .current ());
0 commit comments