@PublicApi public class GraphQLFieldDefinition extends java.lang.Object implements GraphQLNamedSchemaElement, GraphQLDirectiveContainer
DataFetcher used to get data values for that field.
Fields can be thought of as functions in graphql, they have a name, take defined arguments and return a value.
Fields can also be deprecated, which indicates the consumers that a field wont be supported in the future.
See http://graphql.org/learn/queries/#fields for more details on the concept.
| Modifier and Type | Class and Description |
|---|---|
static class |
GraphQLFieldDefinition.Builder |
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
CHILD_ARGUMENTS |
static java.lang.String |
CHILD_TYPE |
CHILD_APPLIED_DIRECTIVES, CHILD_DIRECTIVES| Modifier and Type | Method and Description |
|---|---|
TraversalControl |
accept(TraverserContext<GraphQLSchemaElement> context,
GraphQLTypeVisitor visitor) |
GraphQLSchemaElement |
copy()
Each GraphQLSchemaElement should make a copy of itself when this is called.
|
boolean |
equals(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 a
GraphQLNamedSchemaElement, 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 a
GraphQLNamedSchemaElement, including both
repeatable and non repeatable directives. |
GraphQLAppliedDirective |
getAppliedDirective(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 on
GraphQLNamedSchemaElement as a flat list, which may contain repeatable
and non-repeatable directives. |
GraphQLArgument |
getArgument(java.lang.String name) |
java.util.List<GraphQLArgument> |
getArguments() |
java.util.List<GraphQLSchemaElement> |
getChildren() |
SchemaElementChildrenContainer |
getChildrenWithTypeReferences() |
FieldDefinition |
getDefinition()
The AST
Node this schema element is based on. |
java.lang.String |
getDeprecationReason() |
java.lang.String |
getDescription() |
GraphQLDirective |
getDirective(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 on
GraphQLNamedSchemaElement as 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 a
GraphQLNamedSchemaElement. |
java.lang.String |
getName() |
GraphQLOutputType |
getType() |
int |
hashCode()
No GraphQLSchemaElement implements `equals/hashCode` because we need object identity
to treat a GraphQLSchema as an abstract graph.
|
boolean |
isDeprecated() |
static GraphQLFieldDefinition.Builder |
newFieldDefinition() |
static GraphQLFieldDefinition.Builder |
newFieldDefinition(GraphQLFieldDefinition existing) |
java.lang.String |
toString() |
GraphQLFieldDefinition |
transform(java.util.function.Consumer<GraphQLFieldDefinition.Builder> builderConsumer)
This helps you transform the current GraphQLFieldDefinition into another one by starting a builder with all
the current values and allows you to transform it how you want.
|
GraphQLSchemaElement |
withNewChildren(SchemaElementChildrenContainer newChildren) |
clone, finalize, getClass, notify, notifyAll, wait, wait, waitgetAppliedDirectives, getDirectives, hasAppliedDirective, hasDirectivepublic static final java.lang.String CHILD_ARGUMENTS
public static final java.lang.String CHILD_TYPE
public java.lang.String getName()
getName in interface GraphQLNamedSchemaElementpublic GraphQLOutputType getType()
public GraphQLArgument getArgument(java.lang.String name)
public java.util.List<GraphQLDirective> getDirectives()
GraphQLDirectiveContainerGraphQLNamedSchemaElement as a flat list, which may contain repeatable
and non-repeatable directives.getDirectives in interface GraphQLDirectiveContainerpublic java.util.Map<java.lang.String,GraphQLDirective> getDirectivesByName()
GraphQLDirectiveContainerGraphQLNamedSchemaElement. Any repeatable directives
will be filtered out of this map.getDirectivesByName in interface GraphQLDirectiveContainerpublic java.util.Map<java.lang.String,java.util.List<GraphQLDirective>> getAllDirectivesByName()
GraphQLDirectiveContainerGraphQLNamedSchemaElement, including both
repeatable and non repeatable directives.getAllDirectivesByName in interface GraphQLDirectiveContainerpublic GraphQLDirective getDirective(java.lang.String directiveName)
GraphQLDirectiveContainerAssertException if
the directive is a repeatable directive that has more then one instance.getDirective in interface GraphQLDirectiveContainerdirectiveName - the name of the directive to retrievepublic java.util.List<GraphQLAppliedDirective> getAppliedDirectives()
GraphQLDirectiveContainerGraphQLNamedSchemaElement as a flat list, which may contain repeatable
and non-repeatable directives.getAppliedDirectives in interface GraphQLDirectiveContainerpublic java.util.Map<java.lang.String,java.util.List<GraphQLAppliedDirective>> getAllAppliedDirectivesByName()
GraphQLDirectiveContainerGraphQLNamedSchemaElement, including both
repeatable and non-repeatable directives.getAllAppliedDirectivesByName in interface GraphQLDirectiveContainerpublic GraphQLAppliedDirective getAppliedDirective(java.lang.String directiveName)
GraphQLDirectiveContainergetAppliedDirective in interface GraphQLDirectiveContainerdirectiveName - the name of the directive to retrievepublic java.util.List<GraphQLArgument> getArguments()
public java.lang.String getDescription()
getDescription in interface GraphQLNamedSchemaElementpublic FieldDefinition getDefinition()
GraphQLNamedSchemaElementNode 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 example GraphQLObjectType.getExtensionDefinitions()getDefinition in interface GraphQLNamedSchemaElementpublic java.lang.String getDeprecationReason()
public boolean isDeprecated()
public java.lang.String toString()
toString in class java.lang.Objectpublic GraphQLFieldDefinition transform(java.util.function.Consumer<GraphQLFieldDefinition.Builder> builderConsumer)
builderConsumer - the consumer code that will be given a builder to transformpublic GraphQLSchemaElement copy()
GraphQLSchemaElementcopy in interface GraphQLSchemaElementpublic TraversalControl accept(TraverserContext<GraphQLSchemaElement> context, GraphQLTypeVisitor visitor)
accept in interface GraphQLSchemaElementpublic java.util.List<GraphQLSchemaElement> getChildren()
getChildren in interface GraphQLSchemaElementpublic SchemaElementChildrenContainer getChildrenWithTypeReferences()
getChildrenWithTypeReferences in interface GraphQLSchemaElementpublic GraphQLSchemaElement withNewChildren(SchemaElementChildrenContainer newChildren)
withNewChildren in interface GraphQLSchemaElementpublic final boolean equals(java.lang.Object o)
equals in interface GraphQLSchemaElementequals in class java.lang.Objecto - the reference object with which to compare.true if this object is the same as the obj
argument; false otherwise.public final int hashCode()
hashCode in interface GraphQLSchemaElementhashCode in class java.lang.Objectpublic static GraphQLFieldDefinition.Builder newFieldDefinition(GraphQLFieldDefinition existing)
public static GraphQLFieldDefinition.Builder newFieldDefinition()