@PublicApi public class GraphQLInterfaceType extends java.lang.Object implements GraphQLNamedType, GraphQLCompositeType, GraphQLUnmodifiedType, GraphQLNullableType, GraphQLDirectiveContainer, GraphQLImplementingType
At runtime a TypeResolver
is used to take an interface object value and decide what GraphQLObjectType
represents this interface type.
See http://graphql.org/learn/schema/#interfaces for more details on the concept.
Modifier and Type | Class and Description |
---|---|
static class |
GraphQLInterfaceType.Builder |
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CHILD_DIRECTIVES |
static java.lang.String |
CHILD_FIELD_DEFINITIONS |
static java.lang.String |
CHILD_INTERFACES |
Constructor and Description |
---|
GraphQLInterfaceType(java.lang.String name,
java.lang.String description,
java.util.List<GraphQLFieldDefinition> fieldDefinitions,
TypeResolver typeResolver)
Deprecated.
use the
newInterface() builder pattern instead, as this constructor will be made private in a future version. |
GraphQLInterfaceType(java.lang.String name,
java.lang.String description,
java.util.List<GraphQLFieldDefinition> fieldDefinitions,
TypeResolver typeResolver,
java.util.List<GraphQLDirective> directives,
InterfaceTypeDefinition definition)
Deprecated.
use the
newInterface() builder pattern instead, as this constructor will be made private in a future version. |
GraphQLInterfaceType(java.lang.String name,
java.lang.String description,
java.util.List<GraphQLFieldDefinition> fieldDefinitions,
TypeResolver typeResolver,
java.util.List<GraphQLDirective> directives,
InterfaceTypeDefinition definition,
java.util.List<InterfaceTypeExtensionDefinition> extensionDefinitions,
java.util.List<GraphQLNamedOutputType> interfaces,
java.util.Comparator<? super GraphQLSchemaElement> interfaceComparator)
Deprecated.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getDirective, getDirectivesByName
public static final java.lang.String CHILD_FIELD_DEFINITIONS
public static final java.lang.String CHILD_DIRECTIVES
public static final java.lang.String CHILD_INTERFACES
@Deprecated public GraphQLInterfaceType(java.lang.String name, java.lang.String description, java.util.List<GraphQLFieldDefinition> fieldDefinitions, TypeResolver typeResolver)
newInterface()
builder pattern instead, as this constructor will be made private in a future version.name
- the namedescription
- the descriptionfieldDefinitions
- the fieldstypeResolver
- the type resolver function@Deprecated public GraphQLInterfaceType(java.lang.String name, java.lang.String description, java.util.List<GraphQLFieldDefinition> fieldDefinitions, TypeResolver typeResolver, java.util.List<GraphQLDirective> directives, InterfaceTypeDefinition definition)
newInterface()
builder pattern instead, as this constructor will be made private in a future version.name
- the namedescription
- the descriptionfieldDefinitions
- the fieldstypeResolver
- the type resolver functiondirectives
- the directives on this type elementdefinition
- the AST definition@Deprecated public GraphQLInterfaceType(java.lang.String name, java.lang.String description, java.util.List<GraphQLFieldDefinition> fieldDefinitions, TypeResolver typeResolver, java.util.List<GraphQLDirective> directives, InterfaceTypeDefinition definition, java.util.List<InterfaceTypeExtensionDefinition> extensionDefinitions, java.util.List<GraphQLNamedOutputType> interfaces, java.util.Comparator<? super GraphQLSchemaElement> interfaceComparator)
public GraphQLFieldDefinition getFieldDefinition(java.lang.String name)
getFieldDefinition
in interface GraphQLFieldsContainer
public java.util.List<GraphQLFieldDefinition> getFieldDefinitions()
getFieldDefinitions
in interface GraphQLFieldsContainer
public java.lang.String getName()
getName
in interface GraphQLNamedSchemaElement
public java.lang.String getDescription()
getDescription
in interface GraphQLNamedSchemaElement
public InterfaceTypeDefinition getDefinition()
GraphQLNamedSchemaElement
Node
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 GraphQLNamedSchemaElement
public java.util.List<InterfaceTypeExtensionDefinition> getExtensionDefinitions()
public java.util.List<GraphQLDirective> getDirectives()
getDirectives
in interface GraphQLDirectiveContainer
public java.lang.String toString()
toString
in class java.lang.Object
public GraphQLInterfaceType transform(java.util.function.Consumer<GraphQLInterfaceType.Builder> builderConsumer)
builderConsumer
- the consumer code that will be given a builder to transformpublic TraversalControl accept(TraverserContext<GraphQLSchemaElement> context, GraphQLTypeVisitor visitor)
accept
in interface GraphQLSchemaElement
public java.util.List<GraphQLSchemaElement> getChildren()
getChildren
in interface GraphQLSchemaElement
public SchemaElementChildrenContainer getChildrenWithTypeReferences()
getChildrenWithTypeReferences
in interface GraphQLSchemaElement
public GraphQLInterfaceType withNewChildren(SchemaElementChildrenContainer newChildren)
withNewChildren
in interface GraphQLSchemaElement
public java.util.List<GraphQLNamedOutputType> getInterfaces()
getInterfaces
in interface GraphQLImplementingType
public static GraphQLInterfaceType.Builder newInterface()
public static GraphQLInterfaceType.Builder newInterface(GraphQLInterfaceType existing)