Skip to content

Commit adf2c47

Browse files
committed
Make it possible to provide an external Execution class.
1 parent 224b542 commit adf2c47

9 files changed

Lines changed: 25 additions & 15 deletions

src/main/java/graphql/GraphQL.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44
import graphql.execution.Execution;
5-
import graphql.execution.ExecutionStrategy;
5+
import graphql.execution.IExecutionStrategy;
66
import graphql.language.Document;
77
import graphql.language.SourceLocation;
88
import graphql.parser.Parser;
@@ -25,7 +25,7 @@ public class GraphQL {
2525

2626

2727
private final GraphQLSchema graphQLSchema;
28-
private final ExecutionStrategy executionStrategy;
28+
private final IExecutionStrategy executionStrategy;
2929

3030
private static final Logger log = LoggerFactory.getLogger(GraphQL.class);
3131

@@ -34,7 +34,7 @@ public GraphQL(GraphQLSchema graphQLSchema) {
3434
}
3535

3636

37-
public GraphQL(GraphQLSchema graphQLSchema, ExecutionStrategy executionStrategy) {
37+
public GraphQL(GraphQLSchema graphQLSchema, IExecutionStrategy executionStrategy) {
3838
this.graphQLSchema = graphQLSchema;
3939
this.executionStrategy = executionStrategy;
4040
}

src/main/java/graphql/execution/Execution.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
public class Execution {
1818

1919
private FieldCollector fieldCollector = new FieldCollector();
20-
private ExecutionStrategy strategy;
20+
private IExecutionStrategy strategy;
2121

22-
public Execution(ExecutionStrategy strategy) {
22+
public Execution(IExecutionStrategy strategy) {
2323
this.strategy = strategy;
2424

2525
if (this.strategy == null) {

src/main/java/graphql/execution/ExecutionContext.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
public class ExecutionContext {
1515

1616
private GraphQLSchema graphQLSchema;
17-
private ExecutionStrategy executionStrategy;
17+
private IExecutionStrategy executionStrategy;
1818
private Map<String, FragmentDefinition> fragmentsByName = new LinkedHashMap<String, FragmentDefinition>();
1919
private OperationDefinition operationDefinition;
2020
private Map<String, Object> variables = new LinkedHashMap<String, Object>();
@@ -73,11 +73,11 @@ public List<GraphQLError> getErrors() {
7373
return errors;
7474
}
7575

76-
public ExecutionStrategy getExecutionStrategy() {
76+
public IExecutionStrategy getExecutionStrategy() {
7777
return executionStrategy;
7878
}
7979

80-
public void setExecutionStrategy(ExecutionStrategy executionStrategy) {
80+
public void setExecutionStrategy(IExecutionStrategy executionStrategy) {
8181
this.executionStrategy = executionStrategy;
8282
}
8383
}

src/main/java/graphql/execution/ExecutionContextBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public ExecutionContextBuilder(ValuesResolver valuesResolver) {
1818
this.valuesResolver = valuesResolver;
1919
}
2020

21-
public ExecutionContext build(GraphQLSchema graphQLSchema, ExecutionStrategy executionStrategy, Object root, Document document, String operationName, Map<String, Object> args) {
21+
public ExecutionContext build(GraphQLSchema graphQLSchema, IExecutionStrategy executionStrategy, Object root, Document document, String operationName, Map<String, Object> args) {
2222
Map<String, FragmentDefinition> fragmentsByName = new LinkedHashMap<String, FragmentDefinition>();
2323
Map<String, OperationDefinition> operationsByName = new LinkedHashMap<String, OperationDefinition>();
2424

src/main/java/graphql/execution/ExecutionStrategy.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,12 @@
1313

1414
import static graphql.introspection.Introspection.*;
1515

16-
public abstract class ExecutionStrategy {
16+
public abstract class ExecutionStrategy implements IExecutionStrategy {
1717
private static final Logger log = LoggerFactory.getLogger(ExecutionStrategy.class);
1818

1919
protected ValuesResolver valuesResolver = new ValuesResolver();
2020
protected FieldCollector fieldCollector = new FieldCollector();
2121

22-
public abstract ExecutionResult execute(ExecutionContext executionContext, GraphQLObjectType parentType, Object source, Map<String, List<Field>> fields);
23-
2422
protected ExecutionResult resolveField(ExecutionContext executionContext, GraphQLObjectType parentType, Object source, List<Field> fields) {
2523
GraphQLFieldDefinition fieldDef = getFieldDef(executionContext.getGraphQLSchema(), parentType, fields.get(0));
2624

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package graphql.execution;
2+
3+
import graphql.ExecutionResult;
4+
import graphql.language.Field;
5+
import graphql.schema.GraphQLObjectType;
6+
7+
import java.util.List;
8+
import java.util.Map;
9+
10+
public interface IExecutionStrategy {
11+
ExecutionResult execute(ExecutionContext executionContext, GraphQLObjectType parentType, Object source, Map<String, List<Field>> fields);
12+
}

src/main/java/graphql/execution/batched/GraphQLExecutionNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import java.util.List;
77
import java.util.Map;
88

9-
class GraphQLExecutionNode {
9+
public class GraphQLExecutionNode {
1010

1111
private final GraphQLObjectType parentType;
1212
private final Map<String, List<Field>> fields;

src/main/java/graphql/execution/batched/GraphQLExecutionNodeDatum.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import java.util.Map;
44

5-
class GraphQLExecutionNodeDatum extends GraphQLExecutionResultContainer {
5+
public class GraphQLExecutionNodeDatum extends GraphQLExecutionResultContainer {
66
private final Map<String, Object> parentResult;
77
private final Object source;
88

src/main/java/graphql/execution/batched/GraphQLExecutionResultContainer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,6 @@ public GraphQLExecutionResultList createAndPutEmptyChildList(String fieldName) {
3030
* @param fieldName fieldName
3131
* @param value value
3232
*/
33-
abstract void putResult(String fieldName, Object value);
33+
public abstract void putResult(String fieldName, Object value);
3434

3535
}

0 commit comments

Comments
 (0)