This is an automated email from the ASF dual-hosted git repository. andysch pushed a commit to branch issue/SLING-11920 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-graphql-core.git
commit 09ba9823e06806c17b5df992a7a5e8bee8a9d95c Author: Andreas Schaefer <[email protected]> AuthorDate: Thu Jun 29 15:30:33 2023 -0700 SLING-11920 - Exposed Object Type Names in Selected Fields --- src/main/java/org/apache/sling/graphql/api/SelectedField.java | 2 ++ src/main/java/org/apache/sling/graphql/api/package-info.java | 2 +- .../sling/graphql/core/engine/SelectedFieldWrapper.java | 11 +++++++++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/sling/graphql/api/SelectedField.java b/src/main/java/org/apache/sling/graphql/api/SelectedField.java index b3da627..fe0110a 100644 --- a/src/main/java/org/apache/sling/graphql/api/SelectedField.java +++ b/src/main/java/org/apache/sling/graphql/api/SelectedField.java @@ -62,4 +62,6 @@ public interface SelectedField { * @return true if this field is an inline (i.e: ... on Something { }). */ boolean isInline(); + + List<String> getObjectTypeNames(); } diff --git a/src/main/java/org/apache/sling/graphql/api/package-info.java b/src/main/java/org/apache/sling/graphql/api/package-info.java index 39a0bdc..f6ab9e6 100644 --- a/src/main/java/org/apache/sling/graphql/api/package-info.java +++ b/src/main/java/org/apache/sling/graphql/api/package-info.java @@ -21,6 +21,6 @@ * This package contains APIs which are independent of * a specific implementation of the underlying graphQL engine. */ -@Version("3.3.0") +@Version("3.4.0") package org.apache.sling.graphql.api; import org.osgi.annotation.versioning.Version; diff --git a/src/main/java/org/apache/sling/graphql/core/engine/SelectedFieldWrapper.java b/src/main/java/org/apache/sling/graphql/core/engine/SelectedFieldWrapper.java index 8b50e9e..6ee72e1 100644 --- a/src/main/java/org/apache/sling/graphql/core/engine/SelectedFieldWrapper.java +++ b/src/main/java/org/apache/sling/graphql/core/engine/SelectedFieldWrapper.java @@ -25,7 +25,9 @@ import graphql.language.SelectionSet; import graphql.schema.DataFetchingFieldSelectionSet; import org.apache.sling.graphql.api.SelectedField; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -40,13 +42,13 @@ public class SelectedFieldWrapper implements SelectedField { @Deprecated private boolean isInline; private boolean conditional; - private List<String> objectTypeBNames; + private List<String> objectTypeNames; private Map<String, SelectedField> subFieldMap = new HashMap<>(); private List<SelectedField> subFields; public SelectedFieldWrapper(graphql.schema.SelectedField selectedField) { this.name = selectedField.getName(); - this.objectTypeBNames = selectedField.getObjectTypeNames(); + this.objectTypeNames = selectedField.getObjectTypeNames() == null ? Collections.emptyList() : selectedField.getObjectTypeNames(); this.conditional = selectedField.isConditional(); DataFetchingFieldSelectionSet selectionSet = selectedField.getSelectionSet(); if (selectionSet != null) { @@ -82,4 +84,9 @@ public class SelectedFieldWrapper implements SelectedField { public boolean isInline() { return isInline; } + + @Override + public List<String> getObjectTypeNames() { + return new ArrayList<>(objectTypeNames); + } }
