Package graphql.execution
Class SubscriptionExecutionStrategy
- java.lang.Object
-
- graphql.execution.ExecutionStrategy
-
- graphql.execution.SubscriptionExecutionStrategy
-
@PublicApi public class SubscriptionExecutionStrategy extends ExecutionStrategy
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
Constructors Constructor Description SubscriptionExecutionStrategy()
SubscriptionExecutionStrategy(DataFetcherExceptionHandler dataFetcherExceptionHandler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.util.concurrent.CompletableFuture<org.reactivestreams.Publisher<java.lang.Object>>
createSourceEventStream(ExecutionContext executionContext, ExecutionStrategyParameters parameters)
private ExecutionStepInfo
createSubscribedFieldStepInfo(ExecutionContext executionContext, ExecutionStrategyParameters parameters)
java.util.concurrent.CompletableFuture<ExecutionResult>
execute(ExecutionContext executionContext, ExecutionStrategyParameters parameters)
This is the entry point to an execution strategy.private java.util.concurrent.CompletableFuture<ExecutionResult>
executeSubscriptionEvent(ExecutionContext executionContext, ExecutionStrategyParameters parameters, java.lang.Object eventPayload)
private ExecutionStrategyParameters
firstFieldOfSubscriptionSelection(ExecutionStrategyParameters parameters)
private java.lang.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 Detail
-
SubscriptionExecutionStrategy
public SubscriptionExecutionStrategy()
-
SubscriptionExecutionStrategy
public SubscriptionExecutionStrategy(DataFetcherExceptionHandler dataFetcherExceptionHandler)
-
-
Method Detail
-
execute
public java.util.concurrent.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 java.util.concurrent.CompletableFuture<org.reactivestreams.Publisher<java.lang.Object>> createSourceEventStream(ExecutionContext executionContext, ExecutionStrategyParameters parameters)
-
executeSubscriptionEvent
private java.util.concurrent.CompletableFuture<ExecutionResult> executeSubscriptionEvent(ExecutionContext executionContext, ExecutionStrategyParameters parameters, java.lang.Object eventPayload)
-
wrapWithRootFieldName
private ExecutionResult wrapWithRootFieldName(ExecutionStrategyParameters parameters, ExecutionResult executionResult)
-
getRootFieldName
private java.lang.String getRootFieldName(ExecutionStrategyParameters parameters)
-
firstFieldOfSubscriptionSelection
private ExecutionStrategyParameters firstFieldOfSubscriptionSelection(ExecutionStrategyParameters parameters)
-
createSubscribedFieldStepInfo
private ExecutionStepInfo createSubscribedFieldStepInfo(ExecutionContext executionContext, ExecutionStrategyParameters parameters)
-
-