Package graphql.schema.idl
Class SchemaTypeChecker
- java.lang.Object
-
- graphql.schema.idl.SchemaTypeChecker
-
public class SchemaTypeChecker extends java.lang.Object
This helps pre check the state of the type system to ensure it can be made into an executable schema.It looks for missing types and ensure certain invariants are true before a schema can be made.
-
-
Constructor Summary
Constructors Constructor Description SchemaTypeChecker()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
checkDirectiveDefinitions(TypeDefinitionRegistry typeRegistry, java.util.List<GraphQLError> errors)
private void
checkEnumValues(java.util.List<GraphQLError> errors, EnumTypeDefinition enumType, java.util.List<EnumValueDefinition> enumValueDefinitions, java.util.Map<java.lang.String,DirectiveDefinition> directiveDefinitionMap)
private void
checkFieldsAreSensible(java.util.List<GraphQLError> errors, TypeDefinitionRegistry typeRegistry)
private void
checkFieldTypesPresent(TypeDefinitionRegistry typeRegistry, java.util.List<GraphQLError> errors, TypeDefinition typeDefinition, java.util.List<FieldDefinition> fields)
private void
checkForMissingTypes(java.util.List<GraphQLError> errors, TypeDefinitionRegistry typeRegistry)
private void
checkInputValues(java.util.List<GraphQLError> errors, InputObjectTypeDefinition inputType, java.util.List<InputValueDefinition> inputValueDefinitions, Introspection.DirectiveLocation directiveLocation, java.util.Map<java.lang.String,DirectiveDefinition> directiveDefinitionMap)
private void
checkInterfaceFields(java.util.List<GraphQLError> errors, InterfaceTypeDefinition interfaceType, java.util.List<FieldDefinition> fieldDefinitions, java.util.Map<java.lang.String,DirectiveDefinition> directiveDefinitionMap)
private java.util.function.Consumer<? super Type>
checkInterfaceTypeExists(TypeDefinitionRegistry typeRegistry, java.util.List<GraphQLError> errors, TypeDefinition typeDefinition)
(package private) static <T,E extends GraphQLError>
voidcheckNamedUniqueness(java.util.List<GraphQLError> errors, java.util.List<T> listOfNamedThings, java.util.function.Function<T,java.lang.String> namer, java.util.function.BiFunction<java.lang.String,T,E> errorFunction)
A simple function that takes a list of things, asks for their names and checks that the names are unique within that list.private void
checkObjTypeFields(java.util.List<GraphQLError> errors, ObjectTypeDefinition typeDefinition, java.util.List<FieldDefinition> fieldDefinitions, java.util.Map<java.lang.String,DirectiveDefinition> directiveDefinitionMap)
private void
checkScalarImplementationsArePresent(java.util.List<GraphQLError> errors, TypeDefinitionRegistry typeRegistry, RuntimeWiring wiring)
private java.util.function.Consumer<Type>
checkTypeExists(TypeDefinitionRegistry typeRegistry, java.util.List<GraphQLError> errors, java.lang.String typeOfType, Node element, java.lang.String elementName)
private java.util.function.Consumer<Type>
checkTypeExists(java.lang.String typeOfType, TypeDefinitionRegistry typeRegistry, java.util.List<GraphQLError> errors, TypeDefinition typeDefinition)
java.util.List<GraphQLError>
checkTypeRegistry(TypeDefinitionRegistry typeRegistry, RuntimeWiring wiring)
private void
checkTypeResolversArePresent(java.util.List<GraphQLError> errors, TypeDefinitionRegistry typeRegistry, RuntimeWiring wiring)
private <T extends TypeDefinition>
java.util.List<T>filterTo(java.util.Map<java.lang.String,TypeDefinition> types, java.lang.Class<? extends T> clazz)
-
-
-
Method Detail
-
checkTypeRegistry
public java.util.List<GraphQLError> checkTypeRegistry(TypeDefinitionRegistry typeRegistry, RuntimeWiring wiring) throws SchemaProblem
- Throws:
SchemaProblem
-
checkForMissingTypes
private void checkForMissingTypes(java.util.List<GraphQLError> errors, TypeDefinitionRegistry typeRegistry)
-
checkDirectiveDefinitions
private void checkDirectiveDefinitions(TypeDefinitionRegistry typeRegistry, java.util.List<GraphQLError> errors)
-
checkScalarImplementationsArePresent
private void checkScalarImplementationsArePresent(java.util.List<GraphQLError> errors, TypeDefinitionRegistry typeRegistry, RuntimeWiring wiring)
-
checkFieldsAreSensible
private void checkFieldsAreSensible(java.util.List<GraphQLError> errors, TypeDefinitionRegistry typeRegistry)
-
checkObjTypeFields
private void checkObjTypeFields(java.util.List<GraphQLError> errors, ObjectTypeDefinition typeDefinition, java.util.List<FieldDefinition> fieldDefinitions, java.util.Map<java.lang.String,DirectiveDefinition> directiveDefinitionMap)
-
checkInterfaceFields
private void checkInterfaceFields(java.util.List<GraphQLError> errors, InterfaceTypeDefinition interfaceType, java.util.List<FieldDefinition> fieldDefinitions, java.util.Map<java.lang.String,DirectiveDefinition> directiveDefinitionMap)
-
checkEnumValues
private void checkEnumValues(java.util.List<GraphQLError> errors, EnumTypeDefinition enumType, java.util.List<EnumValueDefinition> enumValueDefinitions, java.util.Map<java.lang.String,DirectiveDefinition> directiveDefinitionMap)
-
checkInputValues
private void checkInputValues(java.util.List<GraphQLError> errors, InputObjectTypeDefinition inputType, java.util.List<InputValueDefinition> inputValueDefinitions, Introspection.DirectiveLocation directiveLocation, java.util.Map<java.lang.String,DirectiveDefinition> directiveDefinitionMap)
-
checkNamedUniqueness
static <T,E extends GraphQLError> void checkNamedUniqueness(java.util.List<GraphQLError> errors, java.util.List<T> listOfNamedThings, java.util.function.Function<T,java.lang.String> namer, java.util.function.BiFunction<java.lang.String,T,E> errorFunction)
A simple function that takes a list of things, asks for their names and checks that the names are unique within that list. If not it calls the error handler function- Parameters:
errors
- the error listlistOfNamedThings
- the list of named thingsnamer
- the function naming a thingerrorFunction
- the function producing an error
-
checkTypeResolversArePresent
private void checkTypeResolversArePresent(java.util.List<GraphQLError> errors, TypeDefinitionRegistry typeRegistry, RuntimeWiring wiring)
-
checkFieldTypesPresent
private void checkFieldTypesPresent(TypeDefinitionRegistry typeRegistry, java.util.List<GraphQLError> errors, TypeDefinition typeDefinition, java.util.List<FieldDefinition> fields)
-
checkTypeExists
private java.util.function.Consumer<Type> checkTypeExists(java.lang.String typeOfType, TypeDefinitionRegistry typeRegistry, java.util.List<GraphQLError> errors, TypeDefinition typeDefinition)
-
checkTypeExists
private java.util.function.Consumer<Type> checkTypeExists(TypeDefinitionRegistry typeRegistry, java.util.List<GraphQLError> errors, java.lang.String typeOfType, Node element, java.lang.String elementName)
-
checkInterfaceTypeExists
private java.util.function.Consumer<? super Type> checkInterfaceTypeExists(TypeDefinitionRegistry typeRegistry, java.util.List<GraphQLError> errors, TypeDefinition typeDefinition)
-
filterTo
private <T extends TypeDefinition> java.util.List<T> filterTo(java.util.Map<java.lang.String,TypeDefinition> types, java.lang.Class<? extends T> clazz)
-
-