public SelectedFieldWrapper()

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());
    }