2
2
3
3
import graphql .execution .AsyncExecutionStrategy ;
4
4
import graphql .execution .ExecutionStrategy ;
5
+ import graphql .execution .SubscriptionExecutionStrategy ;
6
+
7
+ import java .util .function .Supplier ;
5
8
6
9
/**
7
10
* @author Andrew Potter
@@ -22,16 +25,16 @@ public DefaultExecutionStrategyProvider(ExecutionStrategy executionStrategy) {
22
25
23
26
public DefaultExecutionStrategyProvider (ExecutionStrategy queryExecutionStrategy , ExecutionStrategy mutationExecutionStrategy , ExecutionStrategy subscriptionExecutionStrategy ) {
24
27
this .queryExecutionStrategy = defaultIfNull (queryExecutionStrategy );
25
- this .mutationExecutionStrategy = defaultIfNull (mutationExecutionStrategy , this .queryExecutionStrategy );
26
- this .subscriptionExecutionStrategy = defaultIfNull (subscriptionExecutionStrategy , this . queryExecutionStrategy );
28
+ this .mutationExecutionStrategy = defaultIfNull (mutationExecutionStrategy , () -> this .queryExecutionStrategy );
29
+ this .subscriptionExecutionStrategy = defaultIfNull (subscriptionExecutionStrategy , SubscriptionExecutionStrategy :: new );
27
30
}
28
31
29
32
private ExecutionStrategy defaultIfNull (ExecutionStrategy executionStrategy ) {
30
- return defaultIfNull (executionStrategy , new AsyncExecutionStrategy () );
33
+ return defaultIfNull (executionStrategy , AsyncExecutionStrategy :: new );
31
34
}
32
35
33
- private ExecutionStrategy defaultIfNull (ExecutionStrategy executionStrategy , ExecutionStrategy defaultStrategy ) {
34
- return executionStrategy != null ? executionStrategy : defaultStrategy ;
36
+ private ExecutionStrategy defaultIfNull (ExecutionStrategy executionStrategy , Supplier < ExecutionStrategy > defaultStrategy ) {
37
+ return executionStrategy != null ? executionStrategy : defaultStrategy . get () ;
35
38
}
36
39
37
40
@ Override
0 commit comments