Class GraphQLCodeRegistry
java.lang.Object
graphql.schema.GraphQLCodeRegistry
The
GraphQLCodeRegistry holds that execution code that is associated with graphql types, namely
the DataFetchers associated with fields, the TypeResolvers associated with
abstract types and the GraphqlFieldVisibility
For legacy reasons these code functions can still exist on the original type objects but this will be removed in a future version. Once removed the type system objects will be able have proper hashCode/equals methods and be checked for proper equality.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Map<FieldCoordinates, DataFetcherFactory<?>> private final DataFetcherFactory<?> private final GraphqlFieldVisibilityprivate final Map<String, DataFetcherFactory<?>> private final Map<String, TypeResolver> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionDataFetcher<?> getDataFetcher(FieldCoordinates coordinates, GraphQLFieldDefinition fieldDefinition) Returns a data fetcher associated with a field located at specified coordinates.DataFetcher<?> getDataFetcher(GraphQLFieldsContainer parentType, GraphQLFieldDefinition fieldDefinition) Deprecated.DataFetcher<?> getDataFetcher(GraphQLObjectType parentType, GraphQLFieldDefinition fieldDefinition) Returns a data fetcher associated with a field within an object typeprivate static DataFetcher<?> getDataFetcherImpl(FieldCoordinates coordinates, GraphQLFieldDefinition fieldDefinition, Map<FieldCoordinates, DataFetcherFactory<?>> dataFetcherMap, Map<String, DataFetcherFactory<?>> systemDataFetcherMap, DataFetcherFactory<?> defaultDataFetcherFactory) getTypeResolver(GraphQLInterfaceType interfaceType) Returns the type resolver associated with this interface typegetTypeResolver(GraphQLUnionType unionType) Returns the type resolver associated with this union typeprivate static TypeResolvergetTypeResolverForInterface(GraphQLInterfaceType parentType, Map<String, TypeResolver> typeResolverMap) private static TypeResolvergetTypeResolverForUnion(GraphQLUnionType parentType, Map<String, TypeResolver> typeResolverMap) booleanhasDataFetcher(FieldCoordinates coordinates) Returns true if the code registry contained a data fetcher at the specified co-ordinatesprivate static booleanhasDataFetcherImpl(FieldCoordinates coords, Map<FieldCoordinates, DataFetcherFactory<?>> dataFetcherMap, Map<String, DataFetcherFactory<?>> systemDataFetcherMap) static GraphQLCodeRegistry.Builderstatic GraphQLCodeRegistry.BuildernewCodeRegistry(GraphQLCodeRegistry existingCodeRegistry) Returns a new builder ofGraphQLCodeRegistryobjects based on the existing onetransform(Consumer<GraphQLCodeRegistry.Builder> builderConsumer) This helps you transform the currentGraphQLCodeRegistryobject into another one by starting a builder with all the current values and allows you to transform it how you want.
-
Field Details
-
dataFetcherMap
-
systemDataFetcherMap
-
typeResolverMap
-
fieldVisibility
-
defaultDataFetcherFactory
-
-
Constructor Details
-
GraphQLCodeRegistry
-
-
Method Details
-
getFieldVisibility
- Returns:
- the
GraphqlFieldVisibility
-
getDataFetcher
@Deprecated public DataFetcher<?> getDataFetcher(GraphQLFieldsContainer parentType, GraphQLFieldDefinition fieldDefinition) Deprecated.This is confusing becauseGraphQLInterfaceTypes cant have data fetchers. At runtime only aGraphQLObjectTypecan be used to fetch a field. This method allows the mapping to be made, but it is never useful if an interface is passed in.Returns a data fetcher associated with a field within a container type- Parameters:
parentType- the container typefieldDefinition- the field definition- Returns:
- the DataFetcher associated with this field. All fields have data fetchers
- See Also:
-
getDataFetcher
public DataFetcher<?> getDataFetcher(GraphQLObjectType parentType, GraphQLFieldDefinition fieldDefinition) Returns a data fetcher associated with a field within an object type- Parameters:
parentType- the container typefieldDefinition- the field definition- Returns:
- the DataFetcher associated with this field. All fields have data fetchers
-
getDataFetcher
public DataFetcher<?> getDataFetcher(FieldCoordinates coordinates, GraphQLFieldDefinition fieldDefinition) Returns a data fetcher associated with a field located at specified coordinates.- Parameters:
coordinates- the field coordinatesfieldDefinition- the field definition- Returns:
- the DataFetcher associated with this field. All fields have data fetchers
-
hasDataFetcher
Returns true if the code registry contained a data fetcher at the specified co-ordinates- Parameters:
coordinates- the field coordinates- Returns:
- the true if there is a data fetcher at those co-ordinates
-
getDataFetcherImpl
private static DataFetcher<?> getDataFetcherImpl(FieldCoordinates coordinates, GraphQLFieldDefinition fieldDefinition, Map<FieldCoordinates, DataFetcherFactory<?>> dataFetcherMap, Map<String, DataFetcherFactory<?>> systemDataFetcherMap, DataFetcherFactory<?> defaultDataFetcherFactory) -
hasDataFetcherImpl
private static boolean hasDataFetcherImpl(FieldCoordinates coords, Map<FieldCoordinates, DataFetcherFactory<?>> dataFetcherMap, Map<String, DataFetcherFactory<?>> systemDataFetcherMap) -
getTypeResolver
Returns the type resolver associated with this interface type- Parameters:
interfaceType- the interface type- Returns:
- a non null
TypeResolver
-
getTypeResolver
Returns the type resolver associated with this union type- Parameters:
unionType- the union type- Returns:
- a non null
TypeResolver
-
getTypeResolverForInterface
private static TypeResolver getTypeResolverForInterface(GraphQLInterfaceType parentType, Map<String, TypeResolver> typeResolverMap) -
getTypeResolverForUnion
private static TypeResolver getTypeResolverForUnion(GraphQLUnionType parentType, Map<String, TypeResolver> typeResolverMap) -
transform
This helps you transform the currentGraphQLCodeRegistryobject into another one by starting a builder with all the current values and allows you to transform it how you want.- Parameters:
builderConsumer- the consumer code that will be given a builder to transform- Returns:
- a new GraphQLCodeRegistry object based on calling build on that builder
-
newCodeRegistry
- Returns:
- a new builder of
GraphQLCodeRegistryobjects
-
newCodeRegistry
Returns a new builder ofGraphQLCodeRegistryobjects based on the existing one- Parameters:
existingCodeRegistry- the existing code registry to use- Returns:
- a new builder of
GraphQLCodeRegistryobjects
-
GraphQLInterfaceTypes cant have data fetchers.