Package graphql.execution
Class SubscriptionExecutionStrategy
java.lang.Object
graphql.execution.ExecutionStrategy
graphql.execution.SubscriptionExecutionStrategy
An execution strategy that implements graphql subscriptions by using reactive-streams
as the output result of the subscription query.
Afterwards each object delivered on that stream will be mapped via running the original selection set over that object and hence producing an ExecutionResult just like a normal graphql query.
-
Field Summary
Fields inherited from class graphql.execution.ExecutionStrategy
dataFetcherExceptionHandler, executionStepInfoFactory, fieldCollector
-
Constructor Summary
ConstructorsConstructorDescriptionSubscriptionExecutionStrategy
(DataFetcherExceptionHandler dataFetcherExceptionHandler) -
Method Summary
Modifier and TypeMethodDescriptionprivate CompletableFuture
<org.reactivestreams.Publisher<Object>> createSourceEventStream
(ExecutionContext executionContext, ExecutionStrategyParameters parameters) private ExecutionStepInfo
createSubscribedFieldStepInfo
(ExecutionContext executionContext, ExecutionStrategyParameters parameters) execute
(ExecutionContext executionContext, ExecutionStrategyParameters parameters) This is the entry point to an execution strategy.private CompletableFuture
<ExecutionResult> executeSubscriptionEvent
(ExecutionContext executionContext, ExecutionStrategyParameters parameters, Object eventPayload) private ExecutionStrategyParameters
private String
getRootFieldName
(ExecutionStrategyParameters parameters) private ExecutionResult
wrapWithRootFieldName
(ExecutionStrategyParameters parameters, ExecutionResult executionResult) Methods inherited from class graphql.execution.ExecutionStrategy
assertNonNullFieldPrecondition, assertNonNullFieldPrecondition, completeField, completeValue, completeValueForEnum, completeValueForList, completeValueForList, completeValueForNull, completeValueForObject, completeValueForScalar, createExecutionStepInfo, fetchField, getFieldDef, getFieldDef, getNormalizedField, handleFetchingException, handleNonNullException, mkNameForPath, mkNameForPath, mkNameForPath, resolveField, resolveFieldWithInfo, resolveType, toIterable, unboxPossibleDataFetcherResult
-
Constructor Details
-
SubscriptionExecutionStrategy
public SubscriptionExecutionStrategy() -
SubscriptionExecutionStrategy
-
-
Method Details
-
execute
public CompletableFuture<ExecutionResult> execute(ExecutionContext executionContext, ExecutionStrategyParameters parameters) throws NonNullableFieldWasNullException Description copied from class:ExecutionStrategy
This is the entry point to an execution strategy. It will be passed the fields to execute and get values for.- Specified by:
execute
in classExecutionStrategy
- Parameters:
executionContext
- contains the top level execution parametersparameters
- contains the parameters holding the fields to be executed and source object- Returns:
- a promise to an
ExecutionResult
- Throws:
NonNullableFieldWasNullException
- in the future if a non null field resolves to a null value
-
createSourceEventStream
private CompletableFuture<org.reactivestreams.Publisher<Object>> createSourceEventStream(ExecutionContext executionContext, ExecutionStrategyParameters parameters) -
executeSubscriptionEvent
private CompletableFuture<ExecutionResult> executeSubscriptionEvent(ExecutionContext executionContext, ExecutionStrategyParameters parameters, Object eventPayload) -
wrapWithRootFieldName
private ExecutionResult wrapWithRootFieldName(ExecutionStrategyParameters parameters, ExecutionResult executionResult) -
getRootFieldName
-
firstFieldOfSubscriptionSelection
private ExecutionStrategyParameters firstFieldOfSubscriptionSelection(ExecutionStrategyParameters parameters) -
createSubscribedFieldStepInfo
private ExecutionStepInfo createSubscribedFieldStepInfo(ExecutionContext executionContext, ExecutionStrategyParameters parameters)
-