Skip to content

Commit c2fa95d

Browse files
committed
refactoring of QueryTraversal constructor
1 parent e71e6b6 commit c2fa95d

File tree

4 files changed

+27
-30
lines changed

4 files changed

+27
-30
lines changed

src/main/java/graphql/analysis/MaxQueryComplexityInstrumentation.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import graphql.execution.instrumentation.InstrumentationContext;
66
import graphql.execution.instrumentation.NoOpInstrumentation;
77
import graphql.execution.instrumentation.parameters.InstrumentationValidationParameters;
8-
import graphql.language.NodeUtil;
98
import graphql.validation.ValidationError;
109

1110
import java.util.ArrayList;
@@ -27,11 +26,10 @@ public MaxQueryComplexityInstrumentation(int maxComplexity) {
2726
@Override
2827
public InstrumentationContext<List<ValidationError>> beginValidation(InstrumentationValidationParameters parameters) {
2928
return (result, throwable) -> {
30-
NodeUtil.GetOperationResult getOperationResult = NodeUtil.getOperation(parameters.getDocument(), parameters.getOperation());
3129
QueryTraversal queryTraversal = new QueryTraversal(
32-
getOperationResult.operationDefinition,
3330
parameters.getSchema(),
34-
getOperationResult.fragmentsByName,
31+
parameters.getDocument(),
32+
parameters.getOperation(),
3533
parameters.getVariables()
3634
);
3735

src/main/java/graphql/analysis/MaxQueryDepthInstrumentation.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import graphql.execution.instrumentation.InstrumentationContext;
66
import graphql.execution.instrumentation.NoOpInstrumentation;
77
import graphql.execution.instrumentation.parameters.InstrumentationValidationParameters;
8-
import graphql.language.NodeUtil;
98
import graphql.validation.ValidationError;
109

1110
import java.util.List;
@@ -25,11 +24,10 @@ public MaxQueryDepthInstrumentation(int maxDepth) {
2524
@Override
2625
public InstrumentationContext<List<ValidationError>> beginValidation(InstrumentationValidationParameters parameters) {
2726
return (result, throwable) -> {
28-
NodeUtil.GetOperationResult getOperationResult = NodeUtil.getOperation(parameters.getDocument(), parameters.getOperation());
2927
QueryTraversal queryTraversal = new QueryTraversal(
30-
getOperationResult.operationDefinition,
3128
parameters.getSchema(),
32-
getOperationResult.fragmentsByName,
29+
parameters.getDocument(),
30+
parameters.getOperation(),
3331
parameters.getVariables()
3432
);
3533
int depth = queryTraversal.reducePreOrder((env, acc) -> Math.max(getPathLength(env.getPath()), acc), 0);

src/main/java/graphql/analysis/QueryTraversal.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
import graphql.Internal;
44
import graphql.execution.ConditionalNodes;
55
import graphql.execution.ValuesResolver;
6+
import graphql.language.Document;
67
import graphql.language.Field;
78
import graphql.language.FragmentDefinition;
89
import graphql.language.FragmentSpread;
910
import graphql.language.InlineFragment;
11+
import graphql.language.NodeUtil;
1012
import graphql.language.OperationDefinition;
1113
import graphql.language.Selection;
1214
import graphql.language.SelectionSet;
@@ -33,13 +35,14 @@ public class QueryTraversal {
3335
private ValuesResolver valuesResolver = new ValuesResolver();
3436

3537

36-
public QueryTraversal(OperationDefinition operationDefinition,
37-
GraphQLSchema schema,
38-
Map<String, FragmentDefinition> fragmentsByName,
38+
public QueryTraversal(GraphQLSchema schema,
39+
Document document,
40+
String operation,
3941
Map<String, Object> variables) {
40-
this.operationDefinition = operationDefinition;
42+
NodeUtil.GetOperationResult getOperationResult = NodeUtil.getOperation(document, operation);
43+
this.operationDefinition = getOperationResult.operationDefinition;
44+
this.fragmentsByName = getOperationResult.fragmentsByName;
4145
this.schema = schema;
42-
this.fragmentsByName = fragmentsByName;
4346
this.variables = variables;
4447
}
4548

src/test/groovy/graphql/analysis/QueryTraversalTest.groovy

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package graphql.analysis
22

33
import graphql.TestUtil
44
import graphql.language.Document
5-
import graphql.language.NodeUtil
65
import graphql.parser.Parser
76
import graphql.schema.GraphQLSchema
87
import spock.lang.Specification
@@ -16,12 +15,11 @@ class QueryTraversalTest extends Specification {
1615
parser.parseDocument(query)
1716
}
1817

19-
QueryTraversal createQueryTraversal(Document document, GraphQLSchema schema, QueryVisitor visitor, Map variables = [:]) {
20-
def operation = NodeUtil.getOperation(document, null)
18+
QueryTraversal createQueryTraversal(Document document, GraphQLSchema schema, Map variables = [:]) {
2119
QueryTraversal queryTraversal = new QueryTraversal(
22-
operation.operationDefinition,
2320
schema,
24-
operation.fragmentsByName,
21+
document,
22+
null,
2523
variables
2624
)
2725
return queryTraversal
@@ -42,7 +40,7 @@ class QueryTraversalTest extends Specification {
4240
def query = createQuery("""
4341
{foo { subFoo} bar }
4442
""")
45-
QueryTraversal queryTraversal = createQueryTraversal(query, schema, visitor)
43+
QueryTraversal queryTraversal = createQueryTraversal(query, schema)
4644
when:
4745
queryTraversal.visitPreOrder(visitor)
4846

@@ -74,7 +72,7 @@ class QueryTraversalTest extends Specification {
7472
def query = createQuery("""
7573
{foo { subFoo} bar }
7674
""")
77-
QueryTraversal queryTraversal = createQueryTraversal(query, schema, visitor)
75+
QueryTraversal queryTraversal = createQueryTraversal(query, schema)
7876
when:
7977
queryTraversal.visitPostOrder(visitor)
8078

@@ -104,7 +102,7 @@ class QueryTraversalTest extends Specification {
104102
def query = createQuery("""
105103
query myQuery(\$myVar: String){foo(arg1: \$myVar, arg2: true)}
106104
""")
107-
QueryTraversal queryTraversal = createQueryTraversal(query, schema, visitor, ['myVar': 'hello'])
105+
QueryTraversal queryTraversal = createQueryTraversal(query, schema, ['myVar': 'hello'])
108106
when:
109107
queryTraversal."$visitFn"(visitor)
110108

@@ -136,7 +134,7 @@ class QueryTraversalTest extends Specification {
136134
def query = createQuery("""
137135
{bar foo { subFoo} }
138136
""")
139-
QueryTraversal queryTraversal = createQueryTraversal(query, schema, visitor)
137+
QueryTraversal queryTraversal = createQueryTraversal(query, schema)
140138
when:
141139
queryTraversal."$visitFn"(visitor)
142140

@@ -178,7 +176,7 @@ class QueryTraversalTest extends Specification {
178176
}
179177
}
180178
""")
181-
QueryTraversal queryTraversal = createQueryTraversal(query, schema, visitor)
179+
QueryTraversal queryTraversal = createQueryTraversal(query, schema)
182180
when:
183181
queryTraversal."$visitFn"(visitor)
184182
@@ -221,7 +219,7 @@ class QueryTraversalTest extends Specification {
221219
}
222220
}
223221
""")
224-
QueryTraversal queryTraversal = createQueryTraversal(query, schema, visitor)
222+
QueryTraversal queryTraversal = createQueryTraversal(query, schema)
225223
when:
226224
queryTraversal."$visitFn"(visitor)
227225
@@ -266,7 +264,7 @@ class QueryTraversalTest extends Specification {
266264
}
267265

268266
""")
269-
QueryTraversal queryTraversal = createQueryTraversal(query, schema, visitor)
267+
QueryTraversal queryTraversal = createQueryTraversal(query, schema)
270268
when:
271269
queryTraversal."$visitFn"(visitor)
272270
@@ -311,7 +309,7 @@ class QueryTraversalTest extends Specification {
311309
}
312310

313311
""")
314-
QueryTraversal queryTraversal = createQueryTraversal(query, schema, visitor)
312+
QueryTraversal queryTraversal = createQueryTraversal(query, schema)
315313
when:
316314
queryTraversal."$visitFn"(visitor)
317315
@@ -350,7 +348,7 @@ class QueryTraversalTest extends Specification {
350348
}
351349

352350
""")
353-
QueryTraversal queryTraversal = createQueryTraversal(query, schema, visitor, [variableFoo: true])
351+
QueryTraversal queryTraversal = createQueryTraversal(query, schema, [variableFoo: true])
354352
when:
355353
queryTraversal."$visitFn"(visitor)
356354
@@ -403,7 +401,7 @@ class QueryTraversalTest extends Specification {
403401
}
404402

405403
""")
406-
QueryTraversal queryTraversal = createQueryTraversal(query, schema, visitor, [variableFoo: true])
404+
QueryTraversal queryTraversal = createQueryTraversal(query, schema, [variableFoo: true])
407405
when:
408406
queryTraversal."$visitFn"(visitor)
409407
@@ -442,7 +440,7 @@ class QueryTraversalTest extends Specification {
442440
def query = createQuery("""
443441
{foo { subFoo} bar }
444442
""")
445-
QueryTraversal queryTraversal = createQueryTraversal(query, schema, visitor)
443+
QueryTraversal queryTraversal = createQueryTraversal(query, schema)
446444
QueryReducer reducer = Mock(QueryReducer)
447445
when:
448446
def result = queryTraversal.reducePreOrder(reducer, 1)
@@ -473,7 +471,7 @@ class QueryTraversalTest extends Specification {
473471
def query = createQuery("""
474472
{foo { subFoo} bar }
475473
""")
476-
QueryTraversal queryTraversal = createQueryTraversal(query, schema, visitor)
474+
QueryTraversal queryTraversal = createQueryTraversal(query, schema)
477475
QueryReducer reducer = Mock(QueryReducer)
478476
when:
479477
def result = queryTraversal.reducePostOrder(reducer, 1)

0 commit comments

Comments
 (0)