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 ExecutionStepInfocreateSubscribedFieldStepInfo(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 ExecutionStrategyParametersprivate StringgetRootFieldName(ExecutionStrategyParameters parameters) private ExecutionResultwrapWithRootFieldName(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:ExecutionStrategyThis is the entry point to an execution strategy. It will be passed the fields to execute and get values for.- Specified by:
executein 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)
-