in src/main/java/org/apache/sling/graphql/core/engine/SelectedFieldWrapper.java [46:69]
public SelectedFieldWrapper(graphql.schema.SelectedField selectedField) {
this.name = selectedField.getName();
this.objectTypeNames = selectedField.getObjectTypeNames() == null ? Collections.emptyList() : new ArrayList<>(selectedField.getObjectTypeNames());
this.conditional = selectedField.isConditional();
DataFetchingFieldSelectionSet selectionSet = selectedField.getSelectionSet();
if (selectionSet != null) {
selectionSet.getImmediateFields().forEach(sf -> {
SelectedFieldWrapper selectedChildField = (SelectedFieldWrapper) subFieldMap.get(sf.getName());
// If Selected Field Wrapper with that name is not found -> create one
if (selectedChildField == null) {
selectedChildField = new SelectedFieldWrapper(sf);
subFieldMap.put(selectedChildField.getName(), selectedChildField);
} else {
// Add Object Type Names if not already added to the list
for (String objectTypeName : sf.getObjectTypeNames()) {
if (!selectedChildField.objectTypeNames.contains(objectTypeName)) {
selectedChildField.objectTypeNames.add(objectTypeName);
}
}
}
});
}
subFields = subFieldMap.values().stream().collect(Collectors.toList());
}