Package graphql.execution
Class ExecutionStepInfo
- java.lang.Object
-
- graphql.execution.ExecutionStepInfo
-
@PublicApi public class ExecutionStepInfo extends java.lang.Object
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 Modifier and Type Class Description static class
ExecutionStepInfo.Builder
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ExecutionStepInfo
changeTypeWithPreservedNonNull(GraphQLOutputType newType)
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<T> T
getArgument(java.lang.String name)
Returns the named argumentjava.util.Map<java.lang.String,java.lang.Object>
getArguments()
MergedField
getField()
This returns the AST fields that matches thegetFieldDefinition()
during executionGraphQLObjectType
getFieldContainer()
Deprecated.usegetObjectType()
instead as it is named betterGraphQLFieldDefinition
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 typeGraphQLObjectType
getObjectType()
The GraphQLObjectType where fieldDefinition is defined.ExecutionStepInfo
getParent()
ResultPath
getPath()
java.lang.String
getResultKey()
GraphQLOutputType
getType()
This returns the type for the current step.GraphQLOutputType
getUnwrappedNonNullType()
This returns the type which is unwrapped if it wasGraphQLNonNull
wrappedboolean
hasParent()
boolean
isListType()
boolean
isNonNullType()
static ExecutionStepInfo.Builder
newExecutionStepInfo()
static ExecutionStepInfo.Builder
newExecutionStepInfo(ExecutionStepInfo existing)
java.lang.String
simplePrint()
java.lang.String
toString()
ExecutionStepInfo
transform(java.util.function.Consumer<ExecutionStepInfo.Builder> builderConsumer)
-
-
-
Method Detail
-
getFieldContainer
@Deprecated public GraphQLObjectType getFieldContainer()
Deprecated.usegetObjectType()
instead as it is named better- Returns:
- the GraphQLObjectType defining the
getFieldDefinition()
- See Also:
getObjectType()
-
getObjectType
public GraphQLObjectType 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
public GraphQLOutputType getType()
This returns the type for the current step.- Returns:
- the graphql type in question
-
getUnwrappedNonNullType
public GraphQLOutputType getUnwrappedNonNullType()
This returns the type which is unwrapped if it wasGraphQLNonNull
wrapped- Returns:
- the graphql type in question
-
getFieldDefinition
public GraphQLFieldDefinition 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
public MergedField getField()
This returns the AST fields that matches thegetFieldDefinition()
during execution- Returns:
- the merged fields
-
getPath
public ResultPath 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
public java.util.Map<java.lang.String,java.lang.Object> getArguments()
- Returns:
- the resolved arguments that have been passed to this field
-
getArgument
public <T> T getArgument(java.lang.String name)
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
public ExecutionStepInfo getParent()
- Returns:
- the parent type information
-
hasParent
public boolean hasParent()
- Returns:
- true if the type has a parent (most do)
-
changeTypeWithPreservedNonNull
public ExecutionStepInfo changeTypeWithPreservedNonNull(GraphQLOutputType newType)
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
public java.lang.String simplePrint()
- Returns:
- the type in graphql SDL format, eg [typeName!]!
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
transform
public ExecutionStepInfo transform(java.util.function.Consumer<ExecutionStepInfo.Builder> builderConsumer)
-
getResultKey
public java.lang.String getResultKey()
-
newExecutionStepInfo
public static ExecutionStepInfo.Builder newExecutionStepInfo()
- Returns:
- a builder of type info
-
newExecutionStepInfo
public static ExecutionStepInfo.Builder newExecutionStepInfo(ExecutionStepInfo existing)
-
-