Skip to content

Commit 3279332

Browse files
committed
SchemaMappingInspector accepts Map of registrations
Closes gh-894
1 parent 78f7df2 commit 3279332

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

spring-graphql/src/main/java/org/springframework/graphql/execution/SchemaMappingInspector.java

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,15 @@
8080
* @author Rossen Stoyanchev
8181
* @since 1.2.0
8282
*/
83+
@SuppressWarnings("rawtypes")
8384
public class SchemaMappingInspector {
8485

8586
private static final Log logger = LogFactory.getLog(SchemaMappingInspector.class);
8687

8788

8889
private final GraphQLSchema schema;
8990

90-
private final RuntimeWiring runtimeWiring;
91+
private final Map<String, Map<String, DataFetcher>> dataFetchers;
9192

9293
private final Set<String> inspectedTypes = new HashSet<>();
9394

@@ -99,11 +100,11 @@ public class SchemaMappingInspector {
99100
private SchemaReport report;
100101

101102

102-
private SchemaMappingInspector(GraphQLSchema schema, RuntimeWiring runtimeWiring) {
103+
private SchemaMappingInspector(GraphQLSchema schema, Map<String, Map<String, DataFetcher>> dataFetchers) {
103104
Assert.notNull(schema, "GraphQLSchema is required");
104-
Assert.notNull(runtimeWiring, "RuntimeWiring is required");
105+
Assert.notNull(dataFetchers, "DataFetcher map is required");
105106
this.schema = schema;
106-
this.runtimeWiring = runtimeWiring;
107+
this.dataFetchers = dataFetchers;
107108
}
108109

109110

@@ -140,11 +141,10 @@ private void checkSchemaFields() {
140141
* @param resolvableType the Java type to match against, or {@code null} if
141142
* not applicable such as for Query, Mutation, or Subscription
142143
*/
143-
@SuppressWarnings("rawtypes")
144144
private void checkFieldsContainer(GraphQLFieldsContainer fieldContainer, @Nullable ResolvableType resolvableType) {
145145

146146
String typeName = fieldContainer.getName();
147-
Map<String, DataFetcher> dataFetcherMap = this.runtimeWiring.getDataFetcherForType(typeName);
147+
Map<String, DataFetcher> dataFetcherMap = this.dataFetchers.getOrDefault(typeName, Collections.emptyMap());
148148

149149
for (GraphQLFieldDefinition field : fieldContainer.getFieldDefinitions()) {
150150
String fieldName = field.getName();
@@ -307,9 +307,8 @@ private void addSkippedType(GraphQLType type, FieldCoordinates coordinates, Stri
307307
}
308308
}
309309

310-
@SuppressWarnings("rawtypes")
311310
private void checkDataFetcherRegistrations() {
312-
this.runtimeWiring.getDataFetchers().forEach((typeName, registrations) ->
311+
this.dataFetchers.forEach((typeName, registrations) ->
313312
registrations.forEach((fieldName, dataFetcher) -> {
314313
FieldCoordinates coordinates = FieldCoordinates.coordinates(typeName, fieldName);
315314
if (this.schema.getFieldDefinition(coordinates) == null) {
@@ -326,7 +325,16 @@ private void checkDataFetcherRegistrations() {
326325
* @return the created report
327326
*/
328327
public static SchemaReport inspect(GraphQLSchema schema, RuntimeWiring runtimeWiring) {
329-
return new SchemaMappingInspector(schema, runtimeWiring).getOrCreateReport();
328+
return inspect(schema, runtimeWiring.getDataFetchers());
329+
}
330+
331+
/**
332+
* Variant of {@link #inspect(GraphQLSchema, RuntimeWiring)} with a map of
333+
* {@code DataFetcher} registrations.
334+
* @since 1.2.5
335+
*/
336+
public static SchemaReport inspect(GraphQLSchema schema, Map<String, Map<String, DataFetcher>> dataFetchers) {
337+
return new SchemaMappingInspector(schema, dataFetchers).getOrCreateReport();
330338
}
331339

332340

@@ -403,8 +411,8 @@ public GraphQLSchema schema() {
403411
@Override
404412
@Nullable
405413
public DataFetcher<?> dataFetcher(FieldCoordinates coordinates) {
406-
return SchemaMappingInspector.this.runtimeWiring
407-
.getDataFetcherForType(coordinates.getTypeName())
414+
return SchemaMappingInspector.this.dataFetchers
415+
.getOrDefault(coordinates.getTypeName(), Collections.emptyMap())
408416
.get(coordinates.getFieldName());
409417
}
410418

0 commit comments

Comments
 (0)