Package graphql.execution
Class ExecutionStepInfo
java.lang.Object
graphql.execution.ExecutionStepInfo
As the graphql query executes, it forms a hierarchy from parent fields (and their type) to their child fields (and their type)
until a scalar type is encountered; this class captures that execution type information.
The static graphql type system (rightly) does not contain a hierarchy of child to parent types nor the nonnull ness of type instances, so this helper class adds this information during query execution.
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionThis allows you to morph a type into a more specialized form yet return the same parent and non-null ness, for example taking aGraphQLInterfaceType
and turning it into a specificGraphQLObjectType
after type resolution has occurred<T> T
getArgument
(String name) Returns the named argumentgetField()
This returns the AST fields that matches thegetFieldDefinition()
during executionThis returns the field definition that is in play when this type info was created or null if the type is a root query typeThe GraphQLObjectType where fieldDefinition is defined.getPath()
getType()
This returns the type for the current step.This returns the type which is unwrapped if it wasGraphQLNonNull
wrappedboolean
boolean
boolean
static ExecutionStepInfo.Builder
static ExecutionStepInfo.Builder
newExecutionStepInfo
(ExecutionStepInfo existing) toString()
transform
(Consumer<ExecutionStepInfo.Builder> builderConsumer)
-
Method Details
-
getObjectType
The GraphQLObjectType where fieldDefinition is defined. Note: For the Introspection field __typename the returned object type doesn't actually contain the fieldDefinition.- Returns:
- the GraphQLObjectType defining the
getFieldDefinition()
-
getType
This returns the type for the current step.- Returns:
- the graphql type in question
-
getUnwrappedNonNullType
This returns the type which is unwrapped if it wasGraphQLNonNull
wrapped- Returns:
- the graphql type in question
-
getFieldDefinition
This returns the field definition that is in play when this type info was created or null if the type is a root query type- Returns:
- the field definition or null if there is not one
-
getField
This returns the AST fields that matches thegetFieldDefinition()
during execution- Returns:
- the merged fields
-
getPath
- Returns:
- the
ResultPath
to this info
-
isNonNullType
public boolean isNonNullType()- Returns:
- true if the type must be nonnull
-
isListType
public boolean isListType()- Returns:
- true if the type is a list
-
getArguments
- Returns:
- the resolved arguments that have been passed to this field
-
getArgument
Returns the named argument- Type Parameters:
T
- you decide what type it is- Parameters:
name
- the name of the argument- Returns:
- the named argument or null if it's not present
-
getParent
- Returns:
- the parent type information
-
hasParent
public boolean hasParent()- Returns:
- true if the type has a parent (most do)
-
changeTypeWithPreservedNonNull
This allows you to morph a type into a more specialized form yet return the same parent and non-null ness, for example taking aGraphQLInterfaceType
and turning it into a specificGraphQLObjectType
after type resolution has occurred- Parameters:
newType
- the new type to be- Returns:
- a new type info with the same
-
simplePrint
- Returns:
- the type in graphql SDL format, eg [typeName!]!
-
toString
-
transform
-
getResultKey
-
newExecutionStepInfo
- Returns:
- a builder of type info
-
newExecutionStepInfo
-