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 GraphqlElementParentTreebuildRuntimeTree(GraphQLSchemaElement... elements) private <T extends GraphQLDirectiveContainer>
TinvokeWiring(T element, SchemaGeneratorDirectiveHelper.EnvInvoker<T> invoker, SchemaDirectiveWiring schemaDirectiveWiring, SchemaDirectiveWiringEnvironment<T> env) private <T> booleanisNotTheSameObjects(List<T> starting, List<T> ending) private GraphQLArgumentonArgument(GraphQLArgument argument, SchemaGeneratorDirectiveHelper.Parameters params) onEnum(GraphQLEnumType enumType, SchemaGeneratorDirectiveHelper.Parameters params) private GraphQLEnumValueDefinitiononEnumValue(GraphQLEnumValueDefinition enumValueDefinition, SchemaGeneratorDirectiveHelper.Parameters params) private GraphQLFieldDefinitiononField(GraphQLFieldDefinition fieldDefinition, SchemaGeneratorDirectiveHelper.Parameters params) private GraphQLInputObjectFieldonInputObjectField(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
-