in src/main/java/org/apache/sling/graphql/core/engine/DefaultQueryExecutor.java [235:266]
private RuntimeWiring buildWiring(TypeDefinitionRegistry typeRegistry, Iterable<GraphQLScalarType> scalars, Resource r) {
List<ObjectTypeDefinition> types = typeRegistry.getTypes(ObjectTypeDefinition.class);
RuntimeWiring.Builder builder = RuntimeWiring.newRuntimeWiring();
for (ObjectTypeDefinition type : types) {
builder.type(type.getName(), typeWiring -> {
for (FieldDefinition field : type.getFieldDefinitions()) {
try {
DataFetcher<Object> fetcher = getDataFetcher(field, r);
if (fetcher != null) {
typeWiring.dataFetcher(field.getName(), fetcher);
}
} catch (SlingGraphQLException e) {
throw e;
} catch (Exception e) {
throw new SlingGraphQLException("Exception while building wiring.", e);
}
}
handleConnectionTypes(type, typeRegistry);
return typeWiring;
});
}
scalars.forEach(builder::scalar);
List<UnionTypeDefinition> unionTypes = typeRegistry.getTypes(UnionTypeDefinition.class);
for (UnionTypeDefinition type : unionTypes) {
wireTypeResolver(builder, type, r);
}
List<InterfaceTypeDefinition> interfaceTypes = typeRegistry.getTypes(InterfaceTypeDefinition.class);
for (InterfaceTypeDefinition type : interfaceTypes) {
wireTypeResolver(builder, type, r);
}
return builder.build();
}