Package graphql.schema
Class GraphQLInputObjectField
java.lang.Object
graphql.schema.GraphQLInputObjectField
- All Implemented Interfaces:
GraphQLDirectiveContainer
,GraphQLInputSchemaElement
,GraphQLInputValueDefinition
,GraphQLNamedSchemaElement
,GraphQLSchemaElement
@PublicApi
public class GraphQLInputObjectField
extends Object
implements GraphQLNamedSchemaElement, GraphQLInputValueDefinition
Input objects defined via
GraphQLInputObjectType
contains these input fields.
There are similar to GraphQLFieldDefinition
however they can ONLY be used on input objects, that
is to describe values that are fed into a graphql mutation.
See https://graphql.org/learn/schema/#input-types for more details on the concept.-
Nested Class Summary
Nested Classes -
Field Summary
FieldsFields inherited from interface graphql.schema.GraphQLDirectiveContainer
CHILD_APPLIED_DIRECTIVES, CHILD_DIRECTIVES
-
Method Summary
Modifier and TypeMethodDescriptionaccept
(TraverserContext<GraphQLSchemaElement> context, GraphQLTypeVisitor visitor) copy()
Each GraphQLSchemaElement should make a copy of itself when this is called.final boolean
No GraphQLSchemaElement implements `equals` because we need object identity to treat a GraphQLSchema as an abstract graph.This will return a Map of the all directives that are associated with aGraphQLNamedSchemaElement
, including both repeatable and non-repeatable directives.This will return a Map of the all directives that are associated with aGraphQLNamedSchemaElement
, including both repeatable and non repeatable directives.getAppliedDirective
(String directiveName) Returns a non-repeatable directive with the provided name.This will return a list of all the directives that have been put onGraphQLNamedSchemaElement
as a flat list, which may contain repeatable and non-repeatable directives.The ASTNode
this schema element is based on.getDirective
(String directiveName) Returns a non-repeatable directive with the provided name.This will return a list of all the directives that have been put onGraphQLNamedSchemaElement
as a flat list, which may contain repeatable and non-repeatable directives.This will return a Map of the non repeatable directives that are associated with aGraphQLNamedSchemaElement
.@NonNull InputValueWithState
The default value of this input field.static <T> T
getInputFieldDefaultValue
(GraphQLInputObjectField inputObjectField) This static helper method will give out a java value based on the semantics captured in theInputValueWithState
fromgetInputFieldDefaultValue()
Note : You MUST only call this on aGraphQLInputObjectField
that is part of a fully formed schema.getName()
getType()
final int
hashCode()
No GraphQLSchemaElement implements `equals/hashCode` because we need object identity to treat a GraphQLSchema as an abstract graph.boolean
boolean
newInputObjectField
(GraphQLInputObjectField existing) toString()
transform
(Consumer<GraphQLInputObjectField.Builder> builderConsumer) This helps you transform the current GraphQLInputObjectField into another one by starting a builder with all the current values and allows you to transform it how you want.withNewChildren
(SchemaElementChildrenContainer newChildren) Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface graphql.schema.GraphQLDirectiveContainer
getAppliedDirectives, getDirectives, hasAppliedDirective, hasDirective
-
Field Details
-
CHILD_TYPE
- See Also:
-
-
Method Details
-
getName
- Specified by:
getName
in interfaceGraphQLNamedSchemaElement
- Returns:
- the name of this element. This cant be null
-
getType
- Specified by:
getType
in interfaceGraphQLInputValueDefinition
-
getInputFieldDefaultValue
The default value of this input field. The semantics of the returned Object depend on how theInputValueWithState
was created.- Returns:
- a input value with captured state
-
getInputFieldDefaultValue
This static helper method will give out a java value based on the semantics captured in theInputValueWithState
fromgetInputFieldDefaultValue()
Note : You MUST only call this on aGraphQLInputObjectField
that is part of a fully formed schema. We need all of the types to be resolved in order for this work correctly. Note: This method will return null if the value is not set or explicitly set to null. If you you to know the difference when "not set" and "set to null" then you cant use this method. Rather you should usegetInputFieldDefaultValue()
and use theInputValueWithState.isNotSet()
methods to decide how to handle those values.- Type Parameters:
T
- the type you want it cast as- Parameters:
inputObjectField
- the fully formedGraphQLInputObjectField
- Returns:
- a value of type T which is the java value of the input field default
-
hasSetDefaultValue
public boolean hasSetDefaultValue() -
getDescription
- Specified by:
getDescription
in interfaceGraphQLNamedSchemaElement
- Returns:
- the description of this element. This can be null
-
getDeprecationReason
-
isDeprecated
public boolean isDeprecated() -
getDefinition
Description copied from interface:GraphQLNamedSchemaElement
The ASTNode
this schema element is based on. Is null if the GraphQLSchema is not based on a SDL document. Some elements also have additional extension Nodes. See for exampleGraphQLObjectType.getExtensionDefinitions()
- Specified by:
getDefinition
in interfaceGraphQLNamedSchemaElement
- Returns:
- Node which this element is based on. Can be null.
-
getDirectives
Description copied from interface:GraphQLDirectiveContainer
This will return a list of all the directives that have been put onGraphQLNamedSchemaElement
as a flat list, which may contain repeatable and non-repeatable directives.- Specified by:
getDirectives
in interfaceGraphQLDirectiveContainer
- Returns:
- a list of all the directives associated with this named schema element
-
getDirectivesByName
Description copied from interface:GraphQLDirectiveContainer
This will return a Map of the non repeatable directives that are associated with aGraphQLNamedSchemaElement
. Any repeatable directives will be filtered out of this map.- Specified by:
getDirectivesByName
in interfaceGraphQLDirectiveContainer
- Returns:
- a map of non repeatable directives by directive name.
-
getAllDirectivesByName
Description copied from interface:GraphQLDirectiveContainer
This will return a Map of the all directives that are associated with aGraphQLNamedSchemaElement
, including both repeatable and non repeatable directives.- Specified by:
getAllDirectivesByName
in interfaceGraphQLDirectiveContainer
- Returns:
- a map of all directives by directive name
-
getDirective
Description copied from interface:GraphQLDirectiveContainer
Returns a non-repeatable directive with the provided name. This will throw aAssertException
if the directive is a repeatable directive that has more then one instance.- Specified by:
getDirective
in interfaceGraphQLDirectiveContainer
- Parameters:
directiveName
- the name of the directive to retrieve- Returns:
- the directive or null if there is not one with that name
-
getAppliedDirectives
Description copied from interface:GraphQLDirectiveContainer
This will return a list of all the directives that have been put onGraphQLNamedSchemaElement
as a flat list, which may contain repeatable and non-repeatable directives.- Specified by:
getAppliedDirectives
in interfaceGraphQLDirectiveContainer
- Returns:
- a list of all the directives associated with this named schema element
-
getAllAppliedDirectivesByName
Description copied from interface:GraphQLDirectiveContainer
This will return a Map of the all directives that are associated with aGraphQLNamedSchemaElement
, including both repeatable and non-repeatable directives.- Specified by:
getAllAppliedDirectivesByName
in interfaceGraphQLDirectiveContainer
- Returns:
- a map of all directives by directive name
-
getAppliedDirective
Description copied from interface:GraphQLDirectiveContainer
Returns a non-repeatable directive with the provided name.- Specified by:
getAppliedDirective
in interfaceGraphQLDirectiveContainer
- Parameters:
directiveName
- the name of the directive to retrieve- Returns:
- the directive or null if there is not one with that name
-
transform
This helps you transform the current GraphQLInputObjectField 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 object based on calling build on that builder
-
copy
Description copied from interface:GraphQLSchemaElement
Each GraphQLSchemaElement should make a copy of itself when this is called. The copy should be included its current contents as they currently exist into a new object.- Specified by:
copy
in interfaceGraphQLSchemaElement
- Returns:
- a copy of this element
-
accept
public TraversalControl accept(TraverserContext<GraphQLSchemaElement> context, GraphQLTypeVisitor visitor) - Specified by:
accept
in interfaceGraphQLSchemaElement
-
getChildren
- Specified by:
getChildren
in interfaceGraphQLSchemaElement
-
getChildrenWithTypeReferences
- Specified by:
getChildrenWithTypeReferences
in interfaceGraphQLSchemaElement
-
withNewChildren
- Specified by:
withNewChildren
in interfaceGraphQLSchemaElement
-
equals
No GraphQLSchemaElement implements `equals` because we need object identity to treat a GraphQLSchema as an abstract graph.- Specified by:
equals
in interfaceGraphQLSchemaElement
- Overrides:
equals
in classObject
- Parameters:
o
- the reference object with which to compare.- Returns:
true
if this object is the same as the obj argument;false
otherwise.
-
hashCode
public final int hashCode()No GraphQLSchemaElement implements `equals/hashCode` because we need object identity to treat a GraphQLSchema as an abstract graph.- Specified by:
hashCode
in interfaceGraphQLSchemaElement
- Overrides:
hashCode
in classObject
- Returns:
- a hash code value for this object.
-
toString
-
newInputObjectField
-
newInputObjectField
-