@PublicApi public class GraphQLUnionType extends java.lang.Object implements GraphQLNamedOutputType, GraphQLCompositeType, GraphQLUnmodifiedType, GraphQLNullableType, GraphQLDirectiveContainer
At runtime a TypeResolver
is used to take an union object value and decide what GraphQLObjectType
represents this union of types.
Note that members of a union type need to be concrete object types; you can't create a union type out of interfaces or other unions.
See http://graphql.org/learn/schema/#union-types for more details on the concept.
Modifier and Type | Class and Description |
---|---|
static class |
GraphQLUnionType.Builder |
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CHILD_DIRECTIVES |
static java.lang.String |
CHILD_TYPES |
Constructor and Description |
---|
GraphQLUnionType(java.lang.String name,
java.lang.String description,
java.util.List<GraphQLNamedOutputType> types,
TypeResolver typeResolver)
Deprecated.
use the
newUnionType() builder pattern instead, as this constructor will be made private in a future version. |
GraphQLUnionType(java.lang.String name,
java.lang.String description,
java.util.List<GraphQLNamedOutputType> types,
TypeResolver typeResolver,
java.util.List<GraphQLDirective> directives,
UnionTypeDefinition definition)
Deprecated.
use the
newUnionType() builder pattern instead, as this constructor will be made private in a future version. |
Modifier and Type | Method and Description |
---|---|
TraversalControl |
accept(TraverserContext<GraphQLSchemaElement> context,
GraphQLTypeVisitor visitor) |
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.List<GraphQLSchemaElement> |
getChildren() |
SchemaElementChildrenContainer |
getChildrenWithTypeReferences() |
UnionTypeDefinition |
getDefinition()
The AST
Node this schema element is based on. |
java.lang.String |
getDescription() |
java.util.List<GraphQLDirective> |
getDirectives() |
java.util.List<UnionTypeExtensionDefinition> |
getExtensionDefinitions() |
java.lang.String |
getName() |
java.util.List<GraphQLNamedOutputType> |
getTypes() |
int |
hashCode()
No GraphQLSchemaElement implements `equals/hashCode` because we need object identity
to treat a GraphQLSchema as an abstract graph.
|
boolean |
isPossibleType(GraphQLObjectType graphQLObjectType)
Returns true of the object type is a member of this Union type.
|
static GraphQLUnionType.Builder |
newUnionType() |
static GraphQLUnionType.Builder |
newUnionType(GraphQLUnionType existing) |
java.lang.String |
toString() |
GraphQLUnionType |
transform(java.util.function.Consumer<GraphQLUnionType.Builder> builderConsumer)
This helps you transform the current GraphQLUnionType into another one by starting a builder with all
the current values and allows you to transform it how you want.
|
GraphQLUnionType |
withNewChildren(SchemaElementChildrenContainer newChildren) |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getDirective, getDirectivesByName
public static final java.lang.String CHILD_TYPES
public static final java.lang.String CHILD_DIRECTIVES
@Deprecated public GraphQLUnionType(java.lang.String name, java.lang.String description, java.util.List<GraphQLNamedOutputType> types, TypeResolver typeResolver)
newUnionType()
builder pattern instead, as this constructor will be made private in a future version.name
- the namedescription
- the descriptiontypes
- the possible typestypeResolver
- the type resolver function@Deprecated public GraphQLUnionType(java.lang.String name, java.lang.String description, java.util.List<GraphQLNamedOutputType> types, TypeResolver typeResolver, java.util.List<GraphQLDirective> directives, UnionTypeDefinition definition)
newUnionType()
builder pattern instead, as this constructor will be made private in a future version.name
- the namedescription
- the descriptiontypes
- the possible typestypeResolver
- the type resolver functiondirectives
- the directives on this type elementdefinition
- the AST definitionpublic java.util.List<GraphQLNamedOutputType> getTypes()
public boolean isPossibleType(GraphQLObjectType graphQLObjectType)
graphQLObjectType
- the type to checkpublic java.lang.String getName()
getName
in interface GraphQLNamedSchemaElement
public java.lang.String getDescription()
getDescription
in interface GraphQLNamedSchemaElement
public UnionTypeDefinition 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<UnionTypeExtensionDefinition> getExtensionDefinitions()
public java.util.List<GraphQLDirective> getDirectives()
getDirectives
in interface GraphQLDirectiveContainer
public GraphQLUnionType transform(java.util.function.Consumer<GraphQLUnionType.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 GraphQLUnionType withNewChildren(SchemaElementChildrenContainer newChildren)
withNewChildren
in interface GraphQLSchemaElement
public final boolean equals(java.lang.Object o)
equals
in interface GraphQLSchemaElement
equals
in class java.lang.Object
o
- 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 GraphQLSchemaElement
hashCode
in class java.lang.Object
public static GraphQLUnionType.Builder newUnionType()
public static GraphQLUnionType.Builder newUnionType(GraphQLUnionType existing)
public java.lang.String toString()
toString
in class java.lang.Object