Package graphql.schema.idl
Class SchemaGeneratorDirectiveHelper
java.lang.Object
graphql.schema.idl.SchemaGeneratorDirectiveHelper
This contains the helper code that allows
SchemaDirectiveWiring
implementations
to be invoked during schema generation.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static interface
(package private) static interface
(package private) static class
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate NodeParentTree
<NamedNode<?>> buildAstTree
(NamedNode<?>... nodes) private GraphqlElementParentTree
buildRuntimeTree
(GraphQLSchemaElement... elements) private <T extends GraphQLDirectiveContainer>
TinvokeWiring
(T element, SchemaGeneratorDirectiveHelper.EnvInvoker<T> invoker, SchemaDirectiveWiring schemaDirectiveWiring, SchemaDirectiveWiringEnvironment<T> env) private <T> boolean
isNotTheSameObjects
(List<T> starting, List<T> ending) private GraphQLArgument
onArgument
(GraphQLArgument argument, SchemaGeneratorDirectiveHelper.Parameters params) onEnum
(GraphQLEnumType enumType, SchemaGeneratorDirectiveHelper.Parameters params) private GraphQLEnumValueDefinition
onEnumValue
(GraphQLEnumValueDefinition enumValueDefinition, SchemaGeneratorDirectiveHelper.Parameters params) private GraphQLFieldDefinition
onField
(GraphQLFieldDefinition fieldDefinition, SchemaGeneratorDirectiveHelper.Parameters params) private GraphQLInputObjectField
onInputObjectField
(GraphQLInputObjectField element, SchemaGeneratorDirectiveHelper.Parameters params) onInputObjectType
(GraphQLInputObjectType inputObjectType, SchemaGeneratorDirectiveHelper.Parameters params) onInterface
(GraphQLInterfaceType interfaceType, SchemaGeneratorDirectiveHelper.Parameters params) onObject
(GraphQLObjectType objectType, SchemaGeneratorDirectiveHelper.Parameters params) onScalar
(GraphQLScalarType element, SchemaGeneratorDirectiveHelper.Parameters params) onUnion
(GraphQLUnionType element, SchemaGeneratorDirectiveHelper.Parameters params) static <T extends GraphQLDirectiveContainer>
booleanschemaDirectiveWiringIsRequired
(T directiveContainer, TypeDefinitionRegistry typeRegistry, RuntimeWiring runtimeWiring) This will return true if something in the RuntimeWiring requires aSchemaDirectiveWiring
.private List
<GraphQLArgument> wireArguments
(GraphQLFieldDefinition fieldDefinition, GraphQLFieldsContainer fieldsContainer, NamedNode<?> fieldsContainerNode, SchemaGeneratorDirectiveHelper.Parameters params, GraphQLFieldDefinition field) private <T extends GraphQLDirectiveContainer>
TwireDirectives
(SchemaGeneratorDirectiveHelper.Parameters parameters, T element, List<GraphQLDirective> allDirectives, List<GraphQLAppliedDirective> allAppliedDirectives, SchemaGeneratorDirectiveHelper.EnvBuilder<T> envBuilder, SchemaGeneratorDirectiveHelper.EnvInvoker<T> invoker) private List
<GraphQLFieldDefinition> wireFields
(GraphQLFieldsContainer fieldsContainer, NamedNode<?> fieldsContainerNode, SchemaGeneratorDirectiveHelper.Parameters params)
-
Constructor Details
-
SchemaGeneratorDirectiveHelper
public SchemaGeneratorDirectiveHelper()
-
-
Method Details
-
schemaDirectiveWiringIsRequired
public static <T extends GraphQLDirectiveContainer> boolean schemaDirectiveWiringIsRequired(T directiveContainer, TypeDefinitionRegistry typeRegistry, RuntimeWiring runtimeWiring) This will return true if something in the RuntimeWiring requires aSchemaDirectiveWiring
. This is to allow a shortcut to decide that we don't need ANY SchemaDirectiveWiring post processing- Type Parameters:
T
- for two- Parameters:
directiveContainer
- the element that has directivestypeRegistry
- the type registryruntimeWiring
- the runtime wiring- Returns:
- true if something in the RuntimeWiring requires a
SchemaDirectiveWiring
-
buildAstTree
-
buildRuntimeTree
-
wireArguments
private List<GraphQLArgument> wireArguments(GraphQLFieldDefinition fieldDefinition, GraphQLFieldsContainer fieldsContainer, NamedNode<?> fieldsContainerNode, SchemaGeneratorDirectiveHelper.Parameters params, GraphQLFieldDefinition field) -
wireFields
private List<GraphQLFieldDefinition> wireFields(GraphQLFieldsContainer fieldsContainer, NamedNode<?> fieldsContainerNode, SchemaGeneratorDirectiveHelper.Parameters params) -
onObject
public GraphQLObjectType onObject(GraphQLObjectType objectType, SchemaGeneratorDirectiveHelper.Parameters params) -
onInterface
public GraphQLInterfaceType onInterface(GraphQLInterfaceType interfaceType, SchemaGeneratorDirectiveHelper.Parameters params) -
onEnum
public GraphQLEnumType onEnum(GraphQLEnumType enumType, SchemaGeneratorDirectiveHelper.Parameters params) -
onInputObjectType
public GraphQLInputObjectType onInputObjectType(GraphQLInputObjectType inputObjectType, SchemaGeneratorDirectiveHelper.Parameters params) -
onUnion
public GraphQLUnionType onUnion(GraphQLUnionType element, SchemaGeneratorDirectiveHelper.Parameters params) -
onScalar
public GraphQLScalarType onScalar(GraphQLScalarType element, SchemaGeneratorDirectiveHelper.Parameters params) -
onField
private GraphQLFieldDefinition onField(GraphQLFieldDefinition fieldDefinition, SchemaGeneratorDirectiveHelper.Parameters params) -
onInputObjectField
private GraphQLInputObjectField onInputObjectField(GraphQLInputObjectField element, SchemaGeneratorDirectiveHelper.Parameters params) -
onEnumValue
private GraphQLEnumValueDefinition onEnumValue(GraphQLEnumValueDefinition enumValueDefinition, SchemaGeneratorDirectiveHelper.Parameters params) -
onArgument
private GraphQLArgument onArgument(GraphQLArgument argument, SchemaGeneratorDirectiveHelper.Parameters params) -
wireDirectives
private <T extends GraphQLDirectiveContainer> T wireDirectives(SchemaGeneratorDirectiveHelper.Parameters parameters, T element, List<GraphQLDirective> allDirectives, List<GraphQLAppliedDirective> allAppliedDirectives, SchemaGeneratorDirectiveHelper.EnvBuilder<T> envBuilder, SchemaGeneratorDirectiveHelper.EnvInvoker<T> invoker) -
invokeWiring
private <T extends GraphQLDirectiveContainer> T invokeWiring(T element, SchemaGeneratorDirectiveHelper.EnvInvoker<T> invoker, SchemaDirectiveWiring schemaDirectiveWiring, SchemaDirectiveWiringEnvironment<T> env) -
isNotTheSameObjects
-