Package graphql.schema.idl
Class SchemaGeneratorHelper
- java.lang.Object
-
- graphql.schema.idl.SchemaGeneratorHelper
-
public class SchemaGeneratorHelper extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
SchemaGeneratorHelper.BuildContext
We pass this around so we know what we have defined in a stack like manner plus it gives us helper functions
-
Constructor Summary
Constructors Constructor Description SchemaGeneratorHelper()
-
Method Summary
-
-
-
Method Detail
-
buildDescription
static java.lang.String buildDescription(SchemaGeneratorHelper.BuildContext buildContext, Node<?> node, Description description)
-
buildDeprecationReason
java.lang.String buildDeprecationReason(java.util.List<Directive> directives)
-
inputTypeFactory
public java.util.function.Function<Type<?>,GraphQLInputType> inputTypeFactory(SchemaGeneratorHelper.BuildContext buildCtx)
-
buildInputType
GraphQLInputType buildInputType(SchemaGeneratorHelper.BuildContext buildCtx, Type rawType)
-
buildInputObjectType
GraphQLInputObjectType buildInputObjectType(SchemaGeneratorHelper.BuildContext buildCtx, InputObjectTypeDefinition typeDefinition)
-
buildInputField
private GraphQLInputObjectField buildInputField(SchemaGeneratorHelper.BuildContext buildCtx, InputValueDefinition fieldDef)
-
buildEnumType
GraphQLEnumType buildEnumType(SchemaGeneratorHelper.BuildContext buildCtx, EnumTypeDefinition typeDefinition)
-
buildEnumValue
private GraphQLEnumValueDefinition buildEnumValue(SchemaGeneratorHelper.BuildContext buildCtx, EnumTypeDefinition typeDefinition, EnumValuesProvider enumValuesProvider, EnumValueDefinition evd)
-
buildScalar
GraphQLScalarType buildScalar(SchemaGeneratorHelper.BuildContext buildCtx, ScalarTypeDefinition typeDefinition)
-
getScalarDesc
private java.lang.String getScalarDesc(GraphQLScalarType scalar, ScalarTypeDefinition typeDefinition)
-
getSpecifiedByUrl
java.lang.String getSpecifiedByUrl(ScalarTypeDefinition scalarTypeDefinition, java.util.List<ScalarTypeExtensionDefinition> extensions)
-
getTypeResolverForInterface
private TypeResolver getTypeResolverForInterface(SchemaGeneratorHelper.BuildContext buildCtx, InterfaceTypeDefinition interfaceType)
-
getTypeResolverForUnion
private TypeResolver getTypeResolverForUnion(SchemaGeneratorHelper.BuildContext buildCtx, UnionTypeDefinition unionType)
-
buildInterfaceTypeInterfaces
private void buildInterfaceTypeInterfaces(SchemaGeneratorHelper.BuildContext buildCtx, InterfaceTypeDefinition typeDefinition, GraphQLInterfaceType.Builder builder, java.util.List<InterfaceTypeExtensionDefinition> extensions)
-
buildOperation
private GraphQLObjectType buildOperation(SchemaGeneratorHelper.BuildContext buildCtx, OperationTypeDefinition operation)
-
buildInterfaceType
GraphQLInterfaceType buildInterfaceType(SchemaGeneratorHelper.BuildContext buildCtx, InterfaceTypeDefinition typeDefinition)
-
buildObjectType
GraphQLObjectType buildObjectType(SchemaGeneratorHelper.BuildContext buildCtx, ObjectTypeDefinition typeDefinition)
-
buildObjectTypeInterfaces
private void buildObjectTypeInterfaces(SchemaGeneratorHelper.BuildContext buildCtx, ObjectTypeDefinition typeDefinition, GraphQLObjectType.Builder builder, java.util.List<ObjectTypeExtensionDefinition> extensions)
-
buildUnionType
GraphQLUnionType buildUnionType(SchemaGeneratorHelper.BuildContext buildCtx, UnionTypeDefinition typeDefinition)
-
buildOutputType
private <T extends GraphQLOutputType> T buildOutputType(SchemaGeneratorHelper.BuildContext buildCtx, Type<?> rawType)
This is the main recursive spot that builds out the various forms of Output types- Parameters:
buildCtx
- the context we need to work out what we are doingrawType
- the type to be built- Returns:
- an output type
-
buildField
GraphQLFieldDefinition buildField(SchemaGeneratorHelper.BuildContext buildCtx, TypeDefinition<?> parentType, FieldDefinition fieldDef)
-
buildDataFetcherFactory
private DataFetcherFactory<?> buildDataFetcherFactory(SchemaGeneratorHelper.BuildContext buildCtx, TypeDefinition<?> parentType, FieldDefinition fieldDef, GraphQLOutputType fieldType, java.util.List<GraphQLDirective> directives, java.util.List<GraphQLAppliedDirective> appliedDirectives)
-
buildArgument
GraphQLArgument buildArgument(SchemaGeneratorHelper.BuildContext buildCtx, InputValueDefinition valueDefinition)
-
buildOperations
void buildOperations(SchemaGeneratorHelper.BuildContext buildCtx, GraphQLSchema.Builder schemaBuilder)
-
buildSchemaDirectivesAndExtensions
void buildSchemaDirectivesAndExtensions(SchemaGeneratorHelper.BuildContext buildCtx, GraphQLSchema.Builder schemaBuilder)
-
inputObjectTypeExtensions
java.util.List<InputObjectTypeExtensionDefinition> inputObjectTypeExtensions(InputObjectTypeDefinition typeDefinition, SchemaGeneratorHelper.BuildContext buildCtx)
-
enumTypeExtensions
java.util.List<EnumTypeExtensionDefinition> enumTypeExtensions(EnumTypeDefinition typeDefinition, SchemaGeneratorHelper.BuildContext buildCtx)
-
scalarTypeExtensions
java.util.List<ScalarTypeExtensionDefinition> scalarTypeExtensions(ScalarTypeDefinition typeDefinition, SchemaGeneratorHelper.BuildContext buildCtx)
-
interfaceTypeExtensions
java.util.List<InterfaceTypeExtensionDefinition> interfaceTypeExtensions(InterfaceTypeDefinition typeDefinition, SchemaGeneratorHelper.BuildContext buildCtx)
-
objectTypeExtensions
java.util.List<ObjectTypeExtensionDefinition> objectTypeExtensions(ObjectTypeDefinition typeDefinition, SchemaGeneratorHelper.BuildContext buildCtx)
-
unionTypeExtensions
java.util.List<UnionTypeExtensionDefinition> unionTypeExtensions(UnionTypeDefinition typeDefinition, SchemaGeneratorHelper.BuildContext buildCtx)
-
buildAdditionalTypes
java.util.Set<GraphQLType> buildAdditionalTypes(SchemaGeneratorHelper.BuildContext buildCtx)
We build the query / mutation / subscription path as a tree of referenced types but then we build the rest of the types specified and put them in as additional types- Parameters:
buildCtx
- the context we need to work out what we are doing- Returns:
- the additional types not referenced from the top level operations
-
getDetachedTypeNames
private java.util.Set<java.lang.String> getDetachedTypeNames(SchemaGeneratorHelper.BuildContext buildCtx)
Detached types (or additional types) are all types that are not connected to the root operations types.- Parameters:
buildCtx
- buildCtx- Returns:
- detached type names
-
buildAdditionalDirectiveDefinitions
java.util.Set<GraphQLDirective> buildAdditionalDirectiveDefinitions(SchemaGeneratorHelper.BuildContext buildCtx)
-
addDirectivesIncludedByDefault
void addDirectivesIncludedByDefault(TypeDefinitionRegistry typeRegistry)
-
getOperationNamed
private java.util.Optional<OperationTypeDefinition> getOperationNamed(java.lang.String name, java.util.Map<java.lang.String,OperationTypeDefinition> operationTypeDefs)
-
dataFetcherOfLastResort
private DataFetcher<?> dataFetcherOfLastResort(FieldWiringEnvironment environment)
-
directivesOf
private java.util.List<Directive> directivesOf(java.util.List<? extends TypeDefinition<?>> typeDefinitions)
-
directivesObserve
private <T extends GraphQLDirectiveContainer> T directivesObserve(SchemaGeneratorHelper.BuildContext buildCtx, T directiveContainer)
-
-