Skip to content

Commit df57417

Browse files
mrdon-atlassianbbakerman
authored andcommitted
Add optional handling, rename unboxing
1 parent 5db82e6 commit df57417

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

src/main/java/graphql/execution/DataFetcherResult.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111

1212
/**
1313
* An object that can be returned from a {@link DataFetcher} that contains both data and errors to be relativized and
14-
* added to the final result.
14+
* added to the final result. This is a useful when your ``DataFetcher`` retrieves data from multiple sources
15+
* or from another GraphQL resource.
1516
*
1617
* @param <T> The type of the data fetched
1718
*/

src/main/java/graphql/execution/ExecutionStrategy.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -230,13 +230,14 @@ protected CompletableFuture<Object> fetchField(ExecutionContext executionContext
230230
return result;
231231
}
232232
})
233-
.thenApply(result -> processPossibleDataFetcherResult(executionContext, parameters, result));
233+
.thenApply(result -> unboxPossibleDataFetcherResult(executionContext, parameters, result))
234+
.thenApply(this::unboxPossibleOptional);
234235
}
235236

236-
Object processPossibleDataFetcherResult(ExecutionContext executionContext,
237-
ExecutionStrategyParameters parameters,
238-
Object result) {
239-
if (result != null && result instanceof DataFetcherResult) {
237+
Object unboxPossibleDataFetcherResult(ExecutionContext executionContext,
238+
ExecutionStrategyParameters parameters,
239+
Object result) {
240+
if (result instanceof DataFetcherResult) {
240241
//noinspection unchecked
241242
DataFetcherResult<?> dataFetcherResult = (DataFetcherResult) result;
242243
dataFetcherResult.getErrors().stream()

src/test/groovy/graphql/execution/ExecutionStrategyTest.groovy

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import graphql.schema.GraphQLScalarType
2323
import graphql.schema.GraphQLSchema
2424
import spock.lang.Specification
2525

26-
import javax.xml.transform.Source
2726
import java.util.concurrent.CompletableFuture
2827
import java.util.concurrent.CompletionException
2928

@@ -537,7 +536,7 @@ class ExecutionStrategyTest extends Specification {
537536

538537
def executionData = ["child": [:]]
539538
when:
540-
def executionResult = executionStrategy.processPossibleDataFetcherResult(executionContext, parameters,
539+
def executionResult = executionStrategy.unboxPossibleDataFetcherResult(executionContext, parameters,
541540
new DataFetcherResult(executionData, [new DataFetchingErrorGraphQLError("bad foo", ["child", "foo"])]))
542541

543542
then:
@@ -565,7 +564,7 @@ class ExecutionStrategyTest extends Specification {
565564

566565
def executionData = ["child": [:]]
567566
when:
568-
def executionResult = executionStrategy.processPossibleDataFetcherResult(executionContext, parameters,
567+
def executionResult = executionStrategy.unboxPossibleDataFetcherResult(executionContext, parameters,
569568
new DataFetcherResult(executionData, [new DataFetchingErrorGraphQLError("bad foo")]))
570569

571570
then:

0 commit comments

Comments
 (0)