Class AbstractGraphQlSourceBuilder<B extends GraphQlSource.Builder<B>>
java.lang.Object
org.springframework.graphql.execution.AbstractGraphQlSourceBuilder<B>
- Type Parameters:
B- the builder type
- All Implemented Interfaces:
GraphQlSource.Builder<B>
public abstract class AbstractGraphQlSourceBuilder<B extends GraphQlSource.Builder<B>>
extends Object
implements GraphQlSource.Builder<B>
Implementation of
GraphQlSource.Builder that leaves it to subclasses
to initialize GraphQLSchema.- Since:
- 1.0.0
- Author:
- Rossen Stoyanchev, Brian Clozel
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidapplyGraphQlConfigurers(GraphQL.Builder builder) Protected method to apply theconfigured graphQlConfigurer's.build()Build theGraphQlSourceinstance.configureGraphQl(Consumer<GraphQL.Builder> configurer) Configure consumers to be given access to theGraphQL.Builderused to buildGraphQL.exceptionResolvers(List<DataFetcherExceptionResolver> resolvers) AddDataFetcherExceptionResolver's that are invoked when aDataFetcherraises an exception.protected abstract GraphQLSchemaSubclasses must implement this method to provide theGraphQLSchemainstance.instrumentation(List<Instrumentation> instrumentations) ProvideInstrumentationcomponents to instrument the execution of GraphQL queries.AddSubscriptionExceptionResolvers that are invoked when a GraphQL subscriptionPublisherends with error, and given a chance to resolve the exception to one or more GraphQL errors to be sent to the client.typeVisitors(List<GraphQLTypeVisitor> typeVisitors) AddGraphQLTypeVisitors to visit all element of the createdGraphQLSchemaand make changes to theGraphQLCodeRegistry.typeVisitorsToTransformSchema(List<GraphQLTypeVisitor> typeVisitorsToTransformSchema) Alternative toGraphQlSource.Builder.typeVisitors(List)for visitors that also need to make schema changes.
-
Constructor Details
-
AbstractGraphQlSourceBuilder
public AbstractGraphQlSourceBuilder()
-
-
Method Details
-
exceptionResolvers
Description copied from interface:GraphQlSource.BuilderAddDataFetcherExceptionResolver's that are invoked when aDataFetcherraises an exception. Resolvers are invoked in sequence until one emits a list.- Specified by:
exceptionResolversin interfaceGraphQlSource.Builder<B extends GraphQlSource.Builder<B>>- Parameters:
resolvers- the resolvers to add- Returns:
- the current builder
-
subscriptionExceptionResolvers
Description copied from interface:GraphQlSource.BuilderAddSubscriptionExceptionResolvers that are invoked when a GraphQL subscriptionPublisherends with error, and given a chance to resolve the exception to one or more GraphQL errors to be sent to the client. Resolvers are invoked in sequence until one emits a list.- Specified by:
subscriptionExceptionResolversin interfaceGraphQlSource.Builder<B extends GraphQlSource.Builder<B>>- Parameters:
resolvers- the subscription exception resolver- Returns:
- the current builder
-
typeVisitors
Description copied from interface:GraphQlSource.BuilderAddGraphQLTypeVisitors to visit all element of the createdGraphQLSchemaand make changes to theGraphQLCodeRegistry.Note: Visitors are applied via
SchemaTraverserand cannot change the schema.- Specified by:
typeVisitorsin interfaceGraphQlSource.Builder<B extends GraphQlSource.Builder<B>>- Parameters:
typeVisitors- the type visitors- Returns:
- the current builder
- See Also:
-
typeVisitorsToTransformSchema
Description copied from interface:GraphQlSource.BuilderAlternative toGraphQlSource.Builder.typeVisitors(List)for visitors that also need to make schema changes.Note: Visitors are applied via
SchemaTransformer, and therefore can change the schema. However, this is more expensive than usingSchemaTraverser, so generally preferGraphQlSource.Builder.typeVisitors(List)if it's not necessary to change the schema.- Specified by:
typeVisitorsToTransformSchemain interfaceGraphQlSource.Builder<B extends GraphQlSource.Builder<B>>- Parameters:
typeVisitorsToTransformSchema- the type visitors to register- Returns:
- the current builder
- See Also:
-
instrumentation
Description copied from interface:GraphQlSource.BuilderProvideInstrumentationcomponents to instrument the execution of GraphQL queries.- Specified by:
instrumentationin interfaceGraphQlSource.Builder<B extends GraphQlSource.Builder<B>>- Parameters:
instrumentations- the instrumentation components- Returns:
- the current builder
- See Also:
-
configureGraphQl
Description copied from interface:GraphQlSource.BuilderConfigure consumers to be given access to theGraphQL.Builderused to buildGraphQL.- Specified by:
configureGraphQlin interfaceGraphQlSource.Builder<B extends GraphQlSource.Builder<B>>- Parameters:
configurer- the configurer- Returns:
- the current builder
-
build
Description copied from interface:GraphQlSource.BuilderBuild theGraphQlSourceinstance.- Specified by:
buildin interfaceGraphQlSource.Builder<B extends GraphQlSource.Builder<B>>
-
initGraphQlSchema
Subclasses must implement this method to provide theGraphQLSchemainstance. -
applyGraphQlConfigurers
Protected method to apply theconfigured graphQlConfigurer's. Subclasses can use this to customizeGraphQL.Builderfurther.- Parameters:
builder- the builder to be customized- Since:
- 1.2.5
-