This is an automated email from the ASF dual-hosted git repository.

andysch pushed a commit to branch issue/SLING-10900-201-fix
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-graphql-core.git

commit 544e580fc5791ff09c518330cace15aa1925efdc
Author: Andreas Schaefer <[email protected]>
AuthorDate: Thu Jun 29 14:01:37 2023 -0700

    SLING-10900 - The current implementation lead
    
    to an issue where intermediary fields are dropped in favor of an Object 
Type Name property.
    In order to make it accessible the Selected Field needs to expose that list
---
 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);
+    }
 }

Reply via email to