diff --git a/src/main/java/graphql/execution/incremental/DeferredExecution.java b/src/main/java/graphql/execution/incremental/DeferredExecution.java
index b8560b8535..3f14f5922e 100644
--- a/src/main/java/graphql/execution/incremental/DeferredExecution.java
+++ b/src/main/java/graphql/execution/incremental/DeferredExecution.java
@@ -1,14 +1,14 @@
package graphql.execution.incremental;
import graphql.ExperimentalApi;
-import graphql.normalized.incremental.DeferExecution;
+import graphql.normalized.incremental.NormalizedDeferredExecution;
import javax.annotation.Nullable;
/**
* Represents details about the defer execution that can be associated with a {@link graphql.execution.MergedField}.
*
- * This representation is used during graphql execution. Check {@link DeferExecution}
+ * This representation is used during graphql execution. Check {@link NormalizedDeferredExecution}
* for the normalized representation of @defer.
*/
@ExperimentalApi
diff --git a/src/main/java/graphql/normalized/ENFMerger.java b/src/main/java/graphql/normalized/ENFMerger.java
index f1fbc37b95..5150eee5a4 100644
--- a/src/main/java/graphql/normalized/ENFMerger.java
+++ b/src/main/java/graphql/normalized/ENFMerger.java
@@ -75,7 +75,7 @@ && isFieldInSharedInterface(field, fieldInGroup, schema)
if (deferSupport) {
// Move defer executions from removed field into the merged field's entry
- first.addDeferExecutions(next.getDeferExecutions());
+ first.addDeferredExecutions(next.getDeferredExecutions());
}
}
first.setObjectTypeNames(mergedObjects);
diff --git a/src/main/java/graphql/normalized/ExecutableNormalizedField.java b/src/main/java/graphql/normalized/ExecutableNormalizedField.java
index 3a8d36af08..47f8151229 100644
--- a/src/main/java/graphql/normalized/ExecutableNormalizedField.java
+++ b/src/main/java/graphql/normalized/ExecutableNormalizedField.java
@@ -10,7 +10,7 @@
import graphql.collect.ImmutableKit;
import graphql.introspection.Introspection;
import graphql.language.Argument;
-import graphql.normalized.incremental.DeferExecution;
+import graphql.normalized.incremental.NormalizedDeferredExecution;
import graphql.schema.GraphQLFieldDefinition;
import graphql.schema.GraphQLInterfaceType;
import graphql.schema.GraphQLNamedOutputType;
@@ -66,7 +66,7 @@ public class ExecutableNormalizedField {
private final int level;
// Mutable List on purpose: it is modified after creation
- private final LinkedHashSet deferExecutions;
+ private final LinkedHashSet deferredExecutions;
private ExecutableNormalizedField(Builder builder) {
this.alias = builder.alias;
@@ -78,7 +78,7 @@ private ExecutableNormalizedField(Builder builder) {
this.children = builder.children;
this.level = builder.level;
this.parent = builder.parent;
- this.deferExecutions = builder.deferExecutions;
+ this.deferredExecutions = builder.deferredExecutions;
}
/**
@@ -262,13 +262,13 @@ public void clearChildren() {
}
@Internal
- public void setDeferExecutions(Collection deferExecutions) {
- this.deferExecutions.clear();
- this.deferExecutions.addAll(deferExecutions);
+ public void setDeferredExecutions(Collection deferredExecutions) {
+ this.deferredExecutions.clear();
+ this.deferredExecutions.addAll(deferredExecutions);
}
- public void addDeferExecutions(Collection deferExecutions) {
- this.deferExecutions.addAll(deferExecutions);
+ public void addDeferredExecutions(Collection deferredExecutions) {
+ this.deferredExecutions.addAll(deferredExecutions);
}
/**
@@ -477,12 +477,12 @@ public ExecutableNormalizedField getParent() {
}
/**
- * @return the {@link DeferExecution}s associated with this {@link ExecutableNormalizedField}.
- * @see DeferExecution
+ * @return the {@link NormalizedDeferredExecution}s associated with this {@link ExecutableNormalizedField}.
+ * @see NormalizedDeferredExecution
*/
@ExperimentalApi
- public LinkedHashSet getDeferExecutions() {
- return deferExecutions;
+ public LinkedHashSet getDeferredExecutions() {
+ return deferredExecutions;
}
@Internal
@@ -612,7 +612,7 @@ public static class Builder {
private LinkedHashMap resolvedArguments = new LinkedHashMap<>();
private ImmutableList astArguments = ImmutableKit.emptyList();
- private LinkedHashSet deferExecutions = new LinkedHashSet<>();
+ private LinkedHashSet deferredExecutions = new LinkedHashSet<>();
private Builder() {
}
@@ -627,7 +627,7 @@ private Builder(ExecutableNormalizedField existing) {
this.children = new ArrayList<>(existing.children);
this.level = existing.getLevel();
this.parent = existing.getParent();
- this.deferExecutions = existing.getDeferExecutions();
+ this.deferredExecutions = existing.getDeferredExecutions();
}
public Builder clearObjectTypesNames() {
@@ -683,8 +683,8 @@ public Builder parent(ExecutableNormalizedField parent) {
return this;
}
- public Builder deferExecutions(LinkedHashSet deferExecutions) {
- this.deferExecutions = deferExecutions;
+ public Builder deferredExecutions(LinkedHashSet deferredExecutions) {
+ this.deferredExecutions = deferredExecutions;
return this;
}
diff --git a/src/main/java/graphql/normalized/ExecutableNormalizedOperationFactory.java b/src/main/java/graphql/normalized/ExecutableNormalizedOperationFactory.java
index 9367c1d58d..96d5193919 100644
--- a/src/main/java/graphql/normalized/ExecutableNormalizedOperationFactory.java
+++ b/src/main/java/graphql/normalized/ExecutableNormalizedOperationFactory.java
@@ -17,6 +17,7 @@
import graphql.execution.conditional.ConditionalNodes;
import graphql.execution.directives.QueryDirectives;
import graphql.execution.directives.QueryDirectivesImpl;
+import graphql.execution.incremental.IncrementalUtils;
import graphql.introspection.Introspection;
import graphql.language.Directive;
import graphql.language.Document;
@@ -28,10 +29,8 @@
import graphql.language.OperationDefinition;
import graphql.language.Selection;
import graphql.language.SelectionSet;
-import graphql.language.TypeName;
import graphql.language.VariableDefinition;
-import graphql.normalized.incremental.DeferExecution;
-import graphql.normalized.incremental.IncrementalNodes;
+import graphql.normalized.incremental.NormalizedDeferredExecution;
import graphql.schema.FieldCoordinates;
import graphql.schema.GraphQLCompositeType;
import graphql.schema.GraphQLFieldDefinition;
@@ -191,7 +190,6 @@ public boolean getDeferSupport() {
}
private static final ConditionalNodes conditionalNodes = new ConditionalNodes();
- private static final IncrementalNodes incrementalNodes = new IncrementalNodes();
private ExecutableNormalizedOperationFactory() {
@@ -568,7 +566,7 @@ private void createNFs(ImmutableList.Builder nfListBu
nfListBuilder.add(nf);
if (this.options.deferSupport) {
- nf.addDeferExecutions(fieldGroup.deferExecutions);
+ nf.addDeferredExecutions(fieldGroup.deferredExecutions);
}
}
if (commonParentsGroups.size() > 1) {
@@ -633,22 +631,22 @@ private List groupByCommonParentsNoDeferSupport(Collection<
private List groupByCommonParentsWithDeferSupport(Collection fields) {
ImmutableSet.Builder objectTypes = ImmutableSet.builder();
- ImmutableSet.Builder deferExecutionsBuilder = ImmutableSet.builder();
+ ImmutableSet.Builder deferredExecutionsBuilder = ImmutableSet.builder();
for (CollectedField collectedField : fields) {
objectTypes.addAll(collectedField.objectTypes);
- DeferExecution collectedDeferExecution = collectedField.deferExecution;
+ NormalizedDeferredExecution collectedDeferredExecution = collectedField.deferredExecution;
- if (collectedDeferExecution != null) {
- deferExecutionsBuilder.add(collectedDeferExecution);
+ if (collectedDeferredExecution != null) {
+ deferredExecutionsBuilder.add(collectedDeferredExecution);
}
}
Set allRelevantObjects = objectTypes.build();
- Set deferExecutions = deferExecutionsBuilder.build();
+ Set deferredExecutions = deferredExecutionsBuilder.build();
- Set duplicatedLabels = listDuplicatedLabels(deferExecutions);
+ Set duplicatedLabels = listDuplicatedLabels(deferredExecutions);
if (!duplicatedLabels.isEmpty()) {
// Query validation should pick this up
@@ -657,33 +655,33 @@ private List groupByCommonParentsWithDeferSupport(Collectio
Map> groupByAstParent = groupingBy(fields, fieldAndType -> fieldAndType.astTypeCondition);
if (groupByAstParent.size() == 1) {
- return singletonList(new CollectedFieldGroup(ImmutableSet.copyOf(fields), allRelevantObjects, deferExecutions));
+ return singletonList(new CollectedFieldGroup(ImmutableSet.copyOf(fields), allRelevantObjects, deferredExecutions));
}
ImmutableList.Builder result = ImmutableList.builder();
for (GraphQLObjectType objectType : allRelevantObjects) {
Set relevantFields = filterSet(fields, field -> field.objectTypes.contains(objectType));
- Set filteredDeferExecutions = deferExecutions.stream()
+ Set filteredDeferredExecutions = deferredExecutions.stream()
.filter(filterExecutionsFromType(objectType))
.collect(toCollection(LinkedHashSet::new));
- result.add(new CollectedFieldGroup(relevantFields, singleton(objectType), filteredDeferExecutions));
+ result.add(new CollectedFieldGroup(relevantFields, singleton(objectType), filteredDeferredExecutions));
}
return result.build();
}
- private static Predicate filterExecutionsFromType(GraphQLObjectType objectType) {
+ private static Predicate filterExecutionsFromType(GraphQLObjectType objectType) {
String objectTypeName = objectType.getName();
- return deferExecution -> deferExecution.getPossibleTypes()
+ return deferredExecution -> deferredExecution.getPossibleTypes()
.stream()
.map(GraphQLObjectType::getName)
.anyMatch(objectTypeName::equals);
}
- private Set listDuplicatedLabels(Collection deferExecutions) {
- return deferExecutions.stream()
- .map(DeferExecution::getLabel)
+ private Set listDuplicatedLabels(Collection deferredExecutions) {
+ return deferredExecutions.stream()
+ .map(NormalizedDeferredExecution::getLabel)
.filter(Objects::nonNull)
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
.entrySet()
@@ -697,11 +695,11 @@ private void collectFromSelectionSet(SelectionSet selectionSet,
List result,
GraphQLCompositeType astTypeCondition,
Set possibleObjects,
- DeferExecution deferExecution
+ NormalizedDeferredExecution deferredExecution
) {
for (Selection> selection : selectionSet.getSelections()) {
if (selection instanceof Field) {
- collectField(result, (Field) selection, possibleObjects, astTypeCondition, deferExecution);
+ collectField(result, (Field) selection, possibleObjects, astTypeCondition, deferredExecution);
} else if (selection instanceof InlineFragment) {
collectInlineFragment(result, (InlineFragment) selection, possibleObjects, astTypeCondition);
} else if (selection instanceof FragmentSpread) {
@@ -731,12 +729,11 @@ private void collectFragmentSpread(List result,
GraphQLCompositeType newAstTypeCondition = (GraphQLCompositeType) assertNotNull(this.graphQLSchema.getType(fragmentDefinition.getTypeCondition().getName()));
Set newPossibleObjects = narrowDownPossibleObjects(possibleObjects, newAstTypeCondition);
- DeferExecution newDeferExecution = buildDeferExecution(
+ NormalizedDeferredExecution newDeferredExecution = buildDeferredExecution(
fragmentSpread.getDirectives(),
- fragmentDefinition.getTypeCondition(),
newPossibleObjects);
- collectFromSelectionSet(fragmentDefinition.getSelectionSet(), result, newAstTypeCondition, newPossibleObjects, newDeferExecution);
+ collectFromSelectionSet(fragmentDefinition.getSelectionSet(), result, newAstTypeCondition, newPossibleObjects, newDeferredExecution);
}
private void collectInlineFragment(List result,
@@ -756,28 +753,25 @@ private void collectInlineFragment(List result,
}
- DeferExecution newDeferExecution = buildDeferExecution(
+ NormalizedDeferredExecution newDeferredExecution = buildDeferredExecution(
inlineFragment.getDirectives(),
- inlineFragment.getTypeCondition(),
newPossibleObjects
);
- collectFromSelectionSet(inlineFragment.getSelectionSet(), result, newAstTypeCondition, newPossibleObjects, newDeferExecution);
+ collectFromSelectionSet(inlineFragment.getSelectionSet(), result, newAstTypeCondition, newPossibleObjects, newDeferredExecution);
}
- private DeferExecution buildDeferExecution(
+ private NormalizedDeferredExecution buildDeferredExecution(
List directives,
- TypeName typeCondition,
Set newPossibleObjects) {
if(!options.deferSupport) {
return null;
}
- return incrementalNodes.createDeferExecution(
+ return IncrementalUtils.createDeferredExecution(
this.coercedVariableValues.toMap(),
directives,
- typeCondition,
- newPossibleObjects
+ (label) -> new NormalizedDeferredExecution(label, newPossibleObjects)
);
}
@@ -785,7 +779,7 @@ private void collectField(List result,
Field field,
Set possibleObjectTypes,
GraphQLCompositeType astTypeCondition,
- DeferExecution deferExecution
+ NormalizedDeferredExecution deferredExecution
) {
if (!conditionalNodes.shouldInclude(field,
this.coercedVariableValues.toMap(),
@@ -797,7 +791,7 @@ private void collectField(List result,
if (possibleObjectTypes.isEmpty()) {
return;
}
- result.add(new CollectedField(field, possibleObjectTypes, astTypeCondition, deferExecution));
+ result.add(new CollectedField(field, possibleObjectTypes, astTypeCondition, deferredExecution));
}
private Set narrowDownPossibleObjects(Set currentOnes,
@@ -852,13 +846,13 @@ private static class CollectedField {
Field field;
Set objectTypes;
GraphQLCompositeType astTypeCondition;
- DeferExecution deferExecution;
+ NormalizedDeferredExecution deferredExecution;
- public CollectedField(Field field, Set objectTypes, GraphQLCompositeType astTypeCondition, DeferExecution deferExecution) {
+ public CollectedField(Field field, Set objectTypes, GraphQLCompositeType astTypeCondition, NormalizedDeferredExecution deferredExecution) {
this.field = field;
this.objectTypes = objectTypes;
this.astTypeCondition = astTypeCondition;
- this.deferExecution = deferExecution;
+ this.deferredExecution = deferredExecution;
}
}
@@ -885,12 +879,12 @@ private FieldAndAstParent(Field field, GraphQLCompositeType astParentType) {
private static class CollectedFieldGroup {
Set objectTypes;
Set fields;
- Set deferExecutions;
+ Set deferredExecutions;
- public CollectedFieldGroup(Set fields, Set objectTypes, Set deferExecutions) {
+ public CollectedFieldGroup(Set fields, Set objectTypes, Set deferredExecutions) {
this.fields = fields;
this.objectTypes = objectTypes;
- this.deferExecutions = deferExecutions;
+ this.deferredExecutions = deferredExecutions;
}
}
}
diff --git a/src/main/java/graphql/normalized/ExecutableNormalizedOperationToAstCompiler.java b/src/main/java/graphql/normalized/ExecutableNormalizedOperationToAstCompiler.java
index 051d4655de..877decb767 100644
--- a/src/main/java/graphql/normalized/ExecutableNormalizedOperationToAstCompiler.java
+++ b/src/main/java/graphql/normalized/ExecutableNormalizedOperationToAstCompiler.java
@@ -23,7 +23,7 @@
import graphql.language.StringValue;
import graphql.language.TypeName;
import graphql.language.Value;
-import graphql.normalized.incremental.DeferExecution;
+import graphql.normalized.incremental.NormalizedDeferredExecution;
import graphql.schema.GraphQLCompositeType;
import graphql.schema.GraphQLFieldDefinition;
import graphql.schema.GraphQLObjectType;
@@ -277,30 +277,30 @@ private static List> subselectionsForNormalizedFieldWithDeferSuppor
Map> fieldsByFragmentDetails = new LinkedHashMap<>();
for (ExecutableNormalizedField nf : executableNormalizedFields) {
- LinkedHashSet deferExecutions = nf.getDeferExecutions();
+ LinkedHashSet deferredExecutions = nf.getDeferredExecutions();
if (nf.isConditional(schema)) {
selectionForNormalizedField(schema, nf, normalizedFieldToQueryDirectives, variableAccumulator, true)
.forEach((objectTypeName, field) -> {
- if (deferExecutions == null || deferExecutions.isEmpty()) {
+ if (deferredExecutions == null || deferredExecutions.isEmpty()) {
fieldsByFragmentDetails
.computeIfAbsent(new ExecutionFragmentDetails(objectTypeName, null), ignored -> new ArrayList<>())
.add(field);
} else {
- deferExecutions.forEach(deferExecution -> {
+ deferredExecutions.forEach(deferredExecution -> {
fieldsByFragmentDetails
- .computeIfAbsent(new ExecutionFragmentDetails(objectTypeName, deferExecution), ignored -> new ArrayList<>())
+ .computeIfAbsent(new ExecutionFragmentDetails(objectTypeName, deferredExecution), ignored -> new ArrayList<>())
.add(field);
});
}
});
- } else if (deferExecutions != null && !deferExecutions.isEmpty()) {
+ } else if (deferredExecutions != null && !deferredExecutions.isEmpty()) {
Field field = selectionForNormalizedField(schema, parentOutputType, nf, normalizedFieldToQueryDirectives, variableAccumulator, true);
- deferExecutions.forEach(deferExecution -> {
+ deferredExecutions.forEach(deferredExecution -> {
fieldsByFragmentDetails
- .computeIfAbsent(new ExecutionFragmentDetails(null, deferExecution), ignored -> new ArrayList<>())
+ .computeIfAbsent(new ExecutionFragmentDetails(null, deferredExecution), ignored -> new ArrayList<>())
.add(field);
});
} else {
@@ -317,11 +317,11 @@ private static List> subselectionsForNormalizedFieldWithDeferSuppor
fragmentBuilder.typeCondition(typeName);
}
- if (typeAndDeferPair.deferExecution != null) {
+ if (typeAndDeferPair.deferredExecution != null) {
Directive.Builder deferBuilder = Directive.newDirective().name(Directives.DeferDirective.getName());
- if (typeAndDeferPair.deferExecution.getLabel() != null) {
- deferBuilder.argument(newArgument().name("label").value(StringValue.of(typeAndDeferPair.deferExecution.getLabel())).build());
+ if (typeAndDeferPair.deferredExecution.getLabel() != null) {
+ deferBuilder.argument(newArgument().name("label").value(StringValue.of(typeAndDeferPair.deferredExecution.getLabel())).build());
}
fragmentBuilder.directive(deferBuilder.build());
@@ -489,11 +489,11 @@ private static GraphQLObjectType getOperationType(@NotNull GraphQLSchema schema,
*/
private static class ExecutionFragmentDetails {
private final String typeName;
- private final DeferExecution deferExecution;
+ private final NormalizedDeferredExecution deferredExecution;
- public ExecutionFragmentDetails(String typeName, DeferExecution deferExecution) {
+ public ExecutionFragmentDetails(String typeName, NormalizedDeferredExecution deferredExecution) {
this.typeName = typeName;
- this.deferExecution = deferExecution;
+ this.deferredExecution = deferredExecution;
}
@Override
@@ -505,12 +505,12 @@ public boolean equals(Object o) {
return false;
}
ExecutionFragmentDetails that = (ExecutionFragmentDetails) o;
- return Objects.equals(typeName, that.typeName) && Objects.equals(deferExecution, that.deferExecution);
+ return Objects.equals(typeName, that.typeName) && Objects.equals(deferredExecution, that.deferredExecution);
}
@Override
public int hashCode() {
- return Objects.hash(typeName, deferExecution);
+ return Objects.hash(typeName, deferredExecution);
}
}
}
diff --git a/src/main/java/graphql/normalized/incremental/IncrementalNodes.java b/src/main/java/graphql/normalized/incremental/IncrementalNodes.java
deleted file mode 100644
index 025b9333a0..0000000000
--- a/src/main/java/graphql/normalized/incremental/IncrementalNodes.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package graphql.normalized.incremental;
-
-import graphql.Assert;
-import graphql.GraphQLContext;
-import graphql.Internal;
-import graphql.execution.CoercedVariables;
-import graphql.execution.ValuesResolver;
-import graphql.language.Directive;
-import graphql.language.NodeUtil;
-import graphql.language.TypeName;
-import graphql.schema.GraphQLObjectType;
-
-import javax.annotation.Nullable;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import static graphql.Directives.DeferDirective;
-
-@Internal
-public class IncrementalNodes {
-
- public DeferExecution createDeferExecution(
- Map variables,
- List directives,
- @Nullable TypeName targetType,
- Set possibleTypes
- ) {
- Directive deferDirective = NodeUtil.findNodeByName(directives, DeferDirective.getName());
-
- if (deferDirective != null) {
- Map argumentValues = ValuesResolver.getArgumentValues(DeferDirective.getArguments(), deferDirective.getArguments(), CoercedVariables.of(variables), GraphQLContext.getDefault(), Locale.getDefault());
-
- Object flag = argumentValues.get("if");
- Assert.assertTrue(flag instanceof Boolean, () -> String.format("The '%s' directive MUST have a value for the 'if' argument", DeferDirective.getName()));
-
- if (!((Boolean) flag)) {
- return null;
- }
-
- Object label = argumentValues.get("label");
-
- if (label == null) {
- return new DeferExecution(null, possibleTypes);
- }
-
- Assert.assertTrue(label instanceof String, () -> String.format("The 'label' argument from the '%s' directive MUST contain a String value", DeferDirective.getName()));
-
- return new DeferExecution((String) label, possibleTypes);
- }
-
- return null;
- }
-}
diff --git a/src/main/java/graphql/normalized/incremental/DeferExecution.java b/src/main/java/graphql/normalized/incremental/NormalizedDeferredExecution.java
similarity index 73%
rename from src/main/java/graphql/normalized/incremental/DeferExecution.java
rename to src/main/java/graphql/normalized/incremental/NormalizedDeferredExecution.java
index 71488b03ca..a3f789e063 100644
--- a/src/main/java/graphql/normalized/incremental/DeferExecution.java
+++ b/src/main/java/graphql/normalized/incremental/NormalizedDeferredExecution.java
@@ -17,7 +17,7 @@
* type Dog implements Animal { name: String, age: Int }
*
*
- * An ENF can be associated with multiple `DeferExecution`s
+ * An ENF can be associated with multiple `NormalizedDeferredExecution`s
*
* For example, this query:
*
@@ -33,12 +33,12 @@
* }
*
*
- * Would result in one ENF (name) associated with 2 `DeferExecution` instances. This is relevant for the execution
+ * Would result in one ENF (name) associated with 2 `NormalizedDeferredExecution` instances. This is relevant for the execution
* since the field would have to be included in 2 incremental payloads. (I know, there's some duplication here, but
* this is the current state of the spec. There are some discussions happening around de-duplicating data in scenarios
* like this, so this behaviour might change in the future).
*
- * A `DeferExecution` may be associated with a list of possible types
+ * A `NormalizedDeferredExecution` may be associated with a list of possible types
*
* For example, this query:
*
@@ -50,9 +50,9 @@
* }
* }
*
- * results in a `DeferExecution` with no label and possible types [Dog, Cat]
+ * results in a `NormalizedDeferredExecution` with no label and possible types [Dog, Cat]
*
- * A `DeferExecution` may be associated with specific types
+ * A `NormalizedDeferredExecution` may be associated with specific types
* For example, this query:
*
* query MyQuery {
@@ -66,10 +66,10 @@
* }
* }
*
- * results in a single ENF (name) associated with a `DeferExecution` with only "Cat" as a possible type. This means
+ * results in a single ENF (name) associated with a `NormalizedDeferredExecution` with only "Cat" as a possible type. This means
* that, at execution time, `name` should be deferred only if the return object is a "Cat" (but not a if it is a "Dog").
*
- * ENFs associated with the same instance of `DeferExecution` will be resolved in the same incremental response payload
+ * ENFs associated with the same instance of `NormalizedDeferredExecution` will be resolved in the same incremental response payload
* For example, take these queries:
*
*
@@ -94,20 +94,20 @@
* }
*
*
- * In `Query1`, the ENFs name and age are associated with different instances of `DeferExecution`. This means that,
+ * In `Query1`, the ENFs name and age are associated with different instances of `NormalizedDeferredExecution`. This means that,
* during execution, `name` and `age` can be delivered at different times (if name is resolved faster, it will be
* delivered first, and vice-versa).
- * In `Query2` the fields will share the same instance of `DeferExecution`. This ensures that, at execution time, the
+ * In `Query2` the fields will share the same instance of `NormalizedDeferredExecution`. This ensures that, at execution time, the
* fields are guaranteed to be delivered together. In other words, execution should wait until the slowest field resolves
* and deliver both fields at the same time.
*
*/
@ExperimentalApi
-public class DeferExecution {
+public class NormalizedDeferredExecution {
private final String label;
private final Set possibleTypes;
- public DeferExecution(@Nullable String label, Set possibleTypes) {
+ public NormalizedDeferredExecution(@Nullable String label, Set possibleTypes) {
this.label = label;
this.possibleTypes = possibleTypes;
}
diff --git a/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationFactoryDeferTest.groovy b/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationFactoryDeferTest.groovy
index 08ead8f5e2..332d1d685e 100644
--- a/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationFactoryDeferTest.groovy
+++ b/src/test/groovy/graphql/normalized/ExecutableNormalizedOperationFactoryDeferTest.groovy
@@ -200,16 +200,16 @@ class ExecutableNormalizedOperationFactoryDeferTest extends Specification {
def nameField = findField(executableNormalizedOperation, "Dog", "name")
def ageField = findField(executableNormalizedOperation, "Dog", "age")
- nameField.deferExecutions.size() == 1
- ageField.deferExecutions.size() == 2
+ nameField.deferredExecutions.size() == 1
+ ageField.deferredExecutions.size() == 2
// age field is associated with 2 defer executions, one of then is shared with "name" the other isn't
- ageField.deferExecutions.any {
- it == nameField.deferExecutions[0]
+ ageField.deferredExecutions.any {
+ it == nameField.deferredExecutions[0]
}
- ageField.deferExecutions.any {
- it != nameField.deferExecutions[0]
+ ageField.deferredExecutions.any {
+ it != nameField.deferredExecutions[0]
}
printedTree == ['Query.dog',
@@ -440,21 +440,21 @@ class ExecutableNormalizedOperationFactoryDeferTest extends Specification {
def dogBreedField = findField(executableNormalizedOperation, "Dog", "breed")
def catBreedField = findField(executableNormalizedOperation, "Cat", "breed")
- nameField.deferExecutions.size() == 3
- dogBreedField.deferExecutions.size() == 1
- catBreedField.deferExecutions.size() == 1
+ nameField.deferredExecutions.size() == 3
+ dogBreedField.deferredExecutions.size() == 1
+ catBreedField.deferredExecutions.size() == 1
// nameField should share a defer block with each of the other fields
- nameField.deferExecutions.any {
- it == dogBreedField.deferExecutions[0]
+ nameField.deferredExecutions.any {
+ it == dogBreedField.deferredExecutions[0]
}
- nameField.deferExecutions.any {
- it == catBreedField.deferExecutions[0]
+ nameField.deferredExecutions.any {
+ it == catBreedField.deferredExecutions[0]
}
// also, nameField should have a defer block that is not shared with any other field
- nameField.deferExecutions.any {
- it != dogBreedField.deferExecutions[0] &&
- it != catBreedField.deferExecutions[0]
+ nameField.deferredExecutions.any {
+ it != dogBreedField.deferredExecutions[0] &&
+ it != catBreedField.deferredExecutions[0]
}
printedTree == ['Query.animal',
@@ -491,11 +491,11 @@ class ExecutableNormalizedOperationFactoryDeferTest extends Specification {
def nameField = findField(executableNormalizedOperation, "Dog", "name")
def breedField = findField(executableNormalizedOperation, "Dog", "breed")
- nameField.deferExecutions.size() == 1
- breedField.deferExecutions.size() == 1
+ nameField.deferredExecutions.size() == 1
+ breedField.deferredExecutions.size() == 1
// different label instances
- nameField.deferExecutions[0] != breedField.deferExecutions[0]
+ nameField.deferredExecutions[0] != breedField.deferredExecutions[0]
printedTree == ['Query.dog',
'Dog.name defer{[label=null;types=[Dog]]}',
@@ -932,7 +932,7 @@ class ExecutableNormalizedOperationFactoryDeferTest extends Specification {
}
String printDeferExecutionDetails(ExecutableNormalizedField field) {
- def deferExecutions = field.deferExecutions
+ def deferExecutions = field.deferredExecutions
if (deferExecutions == null || deferExecutions.isEmpty()) {
return ""
}