Package graphql.schema
Class GraphQLInputObjectField
- java.lang.Object
-
- graphql.schema.GraphQLInputObjectField
-
- All Implemented Interfaces:
GraphQLDirectiveContainer,GraphQLInputSchemaElement,GraphQLInputValueDefinition,GraphQLNamedSchemaElement,GraphQLSchemaElement
@PublicApi public class GraphQLInputObjectField extends java.lang.Object implements GraphQLNamedSchemaElement, GraphQLInputValueDefinition
Input objects defined viaGraphQLInputObjectTypecontains these input fields. There are similar toGraphQLFieldDefinitionhowever 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 Modifier and Type Class Description static classGraphQLInputObjectField.Builder
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringCHILD_TYPE-
Fields inherited from interface graphql.schema.GraphQLDirectiveContainer
CHILD_APPLIED_DIRECTIVES, CHILD_DIRECTIVES
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description TraversalControlaccept(TraverserContext<GraphQLSchemaElement> context, GraphQLTypeVisitor visitor)GraphQLSchemaElementcopy()Each GraphQLSchemaElement should make a copy of itself when this is called.booleanequals(java.lang.Object o)No GraphQLSchemaElement implements `equals` because we need object identity to treat a GraphQLSchema as an abstract graph.java.util.Map<java.lang.String,java.util.List<GraphQLAppliedDirective>>getAllAppliedDirectivesByName()This will return a Map of the all directives that are associated with aGraphQLNamedSchemaElement, including both repeatable and non-repeatable directives.java.util.Map<java.lang.String,java.util.List<GraphQLDirective>>getAllDirectivesByName()This will return a Map of the all directives that are associated with aGraphQLNamedSchemaElement, including both repeatable and non repeatable directives.GraphQLAppliedDirectivegetAppliedDirective(java.lang.String directiveName)Returns a non-repeatable directive with the provided name.java.util.List<GraphQLAppliedDirective>getAppliedDirectives()This will return a list of all the directives that have been put onGraphQLNamedSchemaElementas a flat list, which may contain repeatable and non-repeatable directives.java.util.List<GraphQLSchemaElement>getChildren()SchemaElementChildrenContainergetChildrenWithTypeReferences()InputValueDefinitiongetDefinition()The ASTNodethis schema element is based on.java.lang.StringgetDeprecationReason()java.lang.StringgetDescription()GraphQLDirectivegetDirective(java.lang.String directiveName)Returns a non-repeatable directive with the provided name.java.util.List<GraphQLDirective>getDirectives()This will return a list of all the directives that have been put onGraphQLNamedSchemaElementas a flat list, which may contain repeatable and non-repeatable directives.java.util.Map<java.lang.String,GraphQLDirective>getDirectivesByName()This will return a Map of the non repeatable directives that are associated with aGraphQLNamedSchemaElement.@NotNull InputValueWithStategetInputFieldDefaultValue()The default value of this input field.static <T> TgetInputFieldDefaultValue(GraphQLInputObjectField inputObjectField)This static helper method will give out a java value based on the semantics captured in theInputValueWithStatefromgetInputFieldDefaultValue()Note : You MUST only call this on aGraphQLInputObjectFieldthat is part of a fully formed schema.java.lang.StringgetName()GraphQLInputTypegetType()inthashCode()No GraphQLSchemaElement implements `equals/hashCode` because we need object identity to treat a GraphQLSchema as an abstract graph.booleanhasSetDefaultValue()booleanisDeprecated()static GraphQLInputObjectField.BuildernewInputObjectField()static GraphQLInputObjectField.BuildernewInputObjectField(GraphQLInputObjectField existing)java.lang.StringtoString()GraphQLInputObjectFieldtransform(java.util.function.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.GraphQLInputObjectFieldwithNewChildren(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 Detail
-
CHILD_TYPE
public static final java.lang.String CHILD_TYPE
- See Also:
- Constant Field Values
-
-
Method Detail
-
getName
public java.lang.String getName()
- Specified by:
getNamein interfaceGraphQLNamedSchemaElement- Returns:
- the name of this element. This cant be null
-
getType
public GraphQLInputType getType()
- Specified by:
getTypein interfaceGraphQLInputValueDefinition
-
getInputFieldDefaultValue
@NotNull public @NotNull InputValueWithState getInputFieldDefaultValue()
The default value of this input field. The semantics of the returned Object depend on how theInputValueWithStatewas created.- Returns:
- a input value with captured state
-
getInputFieldDefaultValue
public static <T> T getInputFieldDefaultValue(GraphQLInputObjectField inputObjectField)
This static helper method will give out a java value based on the semantics captured in theInputValueWithStatefromgetInputFieldDefaultValue()Note : You MUST only call this on aGraphQLInputObjectFieldthat 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
public java.lang.String getDescription()
- Specified by:
getDescriptionin interfaceGraphQLNamedSchemaElement- Returns:
- the description of this element. This can be null
-
getDeprecationReason
public java.lang.String getDeprecationReason()
-
isDeprecated
public boolean isDeprecated()
-
getDefinition
public InputValueDefinition getDefinition()
Description copied from interface:GraphQLNamedSchemaElementThe ASTNodethis 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:
getDefinitionin interfaceGraphQLNamedSchemaElement- Returns:
- Node which this element is based on. Can be null.
-
getDirectives
public java.util.List<GraphQLDirective> getDirectives()
Description copied from interface:GraphQLDirectiveContainerThis will return a list of all the directives that have been put onGraphQLNamedSchemaElementas a flat list, which may contain repeatable and non-repeatable directives.- Specified by:
getDirectivesin interfaceGraphQLDirectiveContainer- Returns:
- a list of all the directives associated with this named schema element
-
getDirectivesByName
public java.util.Map<java.lang.String,GraphQLDirective> getDirectivesByName()
Description copied from interface:GraphQLDirectiveContainerThis 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:
getDirectivesByNamein interfaceGraphQLDirectiveContainer- Returns:
- a map of non repeatable directives by directive name.
-
getAllDirectivesByName
public java.util.Map<java.lang.String,java.util.List<GraphQLDirective>> getAllDirectivesByName()
Description copied from interface:GraphQLDirectiveContainerThis will return a Map of the all directives that are associated with aGraphQLNamedSchemaElement, including both repeatable and non repeatable directives.- Specified by:
getAllDirectivesByNamein interfaceGraphQLDirectiveContainer- Returns:
- a map of all directives by directive name
-
getDirective
public GraphQLDirective getDirective(java.lang.String directiveName)
Description copied from interface:GraphQLDirectiveContainerReturns a non-repeatable directive with the provided name. This will throw aAssertExceptionif the directive is a repeatable directive that has more then one instance.- Specified by:
getDirectivein interfaceGraphQLDirectiveContainer- Parameters:
directiveName- the name of the directive to retrieve- Returns:
- the directive or null if there is not one with that name
-
getAppliedDirectives
public java.util.List<GraphQLAppliedDirective> getAppliedDirectives()
Description copied from interface:GraphQLDirectiveContainerThis will return a list of all the directives that have been put onGraphQLNamedSchemaElementas a flat list, which may contain repeatable and non-repeatable directives.- Specified by:
getAppliedDirectivesin interfaceGraphQLDirectiveContainer- Returns:
- a list of all the directives associated with this named schema element
-
getAllAppliedDirectivesByName
public java.util.Map<java.lang.String,java.util.List<GraphQLAppliedDirective>> getAllAppliedDirectivesByName()
Description copied from interface:GraphQLDirectiveContainerThis will return a Map of the all directives that are associated with aGraphQLNamedSchemaElement, including both repeatable and non-repeatable directives.- Specified by:
getAllAppliedDirectivesByNamein interfaceGraphQLDirectiveContainer- Returns:
- a map of all directives by directive name
-
getAppliedDirective
public GraphQLAppliedDirective getAppliedDirective(java.lang.String directiveName)
Description copied from interface:GraphQLDirectiveContainerReturns a non-repeatable directive with the provided name.- Specified by:
getAppliedDirectivein interfaceGraphQLDirectiveContainer- Parameters:
directiveName- the name of the directive to retrieve- Returns:
- the directive or null if there is not one with that name
-
transform
public GraphQLInputObjectField transform(java.util.function.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.- 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
public GraphQLSchemaElement copy()
Description copied from interface:GraphQLSchemaElementEach 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:
copyin interfaceGraphQLSchemaElement- Returns:
- a copy of this element
-
accept
public TraversalControl accept(TraverserContext<GraphQLSchemaElement> context, GraphQLTypeVisitor visitor)
- Specified by:
acceptin interfaceGraphQLSchemaElement
-
getChildren
public java.util.List<GraphQLSchemaElement> getChildren()
- Specified by:
getChildrenin interfaceGraphQLSchemaElement
-
getChildrenWithTypeReferences
public SchemaElementChildrenContainer getChildrenWithTypeReferences()
- Specified by:
getChildrenWithTypeReferencesin interfaceGraphQLSchemaElement
-
withNewChildren
public GraphQLInputObjectField withNewChildren(SchemaElementChildrenContainer newChildren)
- Specified by:
withNewChildrenin interfaceGraphQLSchemaElement
-
equals
public final boolean equals(java.lang.Object o)
No GraphQLSchemaElement implements `equals` because we need object identity to treat a GraphQLSchema as an abstract graph.- Specified by:
equalsin interfaceGraphQLSchemaElement- Overrides:
equalsin classjava.lang.Object- Parameters:
o- the reference object with which to compare.- Returns:
trueif this object is the same as the obj argument;falseotherwise.
-
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:
hashCodein interfaceGraphQLSchemaElement- Overrides:
hashCodein classjava.lang.Object- Returns:
- a hash code value for this object.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
newInputObjectField
public static GraphQLInputObjectField.Builder newInputObjectField(GraphQLInputObjectField existing)
-
newInputObjectField
public static GraphQLInputObjectField.Builder newInputObjectField()
-
-