Class GraphQLCodeRegistry

java.lang.Object
graphql.schema.GraphQLCodeRegistry

@PublicApi public class GraphQLCodeRegistry extends 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 Details

    • getFieldVisibility

      public GraphqlFieldVisibility getFieldVisibility()
      Returns:
      the GraphqlFieldVisibility
    • getDataFetcher

      public DataFetcher<?> getDataFetcher(GraphQLObjectType parentType, GraphQLFieldDefinition fieldDefinition)
      Returns a data fetcher associated with a field within an object 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(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
    • newCodeRegistry

      public static GraphQLCodeRegistry.Builder newCodeRegistry()
      Returns:
      a new builder of GraphQLCodeRegistry objects
    • newCodeRegistry

      public static GraphQLCodeRegistry.Builder newCodeRegistry(GraphQLCodeRegistry existingCodeRegistry)
      Returns a new builder of GraphQLCodeRegistry objects based on the existing one
      Parameters:
      existingCodeRegistry - the existing code registry to use
      Returns:
      a new builder of GraphQLCodeRegistry objects