Class GraphQLCodeRegistry


  • @PublicApi
    public class GraphQLCodeRegistry
    extends java.lang.Object
    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.

    • Method Detail

      • getDataFetcher

        public DataFetcher<?> getDataFetcher​(GraphQLFieldsContainer parentType,
                                             GraphQLFieldDefinition fieldDefinition)
        Returns a data fetcher associated with a field within a container type
        Parameters:
        parentType - the container type
        fieldDefinition - 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 coordinates
        fieldDefinition - the field definition
        Returns:
        the DataFetcher associated with this field. All fields have data fetchers
      • hasDataFetcher

        public boolean hasDataFetcher​(FieldCoordinates coordinates)
        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
      • getTypeResolver

        public TypeResolver getTypeResolver​(GraphQLInterfaceType interfaceType)
        Returns the type resolver associated with this interface type
        Parameters:
        interfaceType - the interface type
        Returns:
        a non null TypeResolver
      • getTypeResolver

        public TypeResolver getTypeResolver​(GraphQLUnionType unionType)
        Returns the type resolver associated with this union type
        Parameters:
        unionType - the union type
        Returns:
        a non null TypeResolver
      • transform

        public GraphQLCodeRegistry transform​(java.util.function.Consumer<GraphQLCodeRegistry.Builder> builderConsumer)
        This helps you transform the current GraphQLCodeRegistry object 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