class DefaultSchemaTransformer(val oldSchema: GraphQLSchema, val mappingContext: Neo4jMappingContext, val nodeDefinitionCollection: NodeDefinitionCollection, val dataFetcherFactoryProvider: KotlinDataFetcherFactoryProvider, val subFilterGenerator: SubFilterGenerator, val includeSkipField: Boolean, val reactiveNeo4jClient: ReactiveNeo4jClient, val renderer: Renderer, val additionalOrderBeans: Map<String, OrderPart<*>>) : SchemaTransformer

Default implementation of SchemaTransformer The transformation result can be found in schema The generated filter collection can be found in filterDefinitionCollection

Parameters

oldSchema

the schema to transform

mappingContext

mapping context used to get type information from Neo4j

nodeDefinitionCollection

collection of all NodeDefinitions

dataFetcherFactoryProvider

provides function and property data fetchers

subFilterGenerator

used to generate the filter entries

includeSkipField

if true, connections provide the non-standard skip field

reactiveNeo4jClient

used to execute Cypher queries

renderer

used to render Cypher queries

additionalOrderBeans

lookup for additional order parts

Constructors

Link copied to clipboard
constructor(oldSchema: GraphQLSchema, mappingContext: Neo4jMappingContext, nodeDefinitionCollection: NodeDefinitionCollection, dataFetcherFactoryProvider: KotlinDataFetcherFactoryProvider, subFilterGenerator: SubFilterGenerator, includeSkipField: Boolean, reactiveNeo4jClient: ReactiveNeo4jClient, renderer: Renderer, additionalOrderBeans: Map<String, OrderPart<*>>)

Properties

Link copied to clipboard
open override val additionalOrderBeans: Map<String, OrderPart<*>>
Link copied to clipboard
open override val dataFetcherFactoryProvider: KotlinDataFetcherFactoryProvider
Link copied to clipboard

Collection with all filter definitions

Link copied to clipboard
open override val includeSkipField: Boolean
Link copied to clipboard
open override val inputTypeCache: CacheMap<String, GraphQLInputType>

Cache for GraphQLInputTypes

Link copied to clipboard
open override val mappingContext: Neo4jMappingContext
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
private val oldSchema: GraphQLSchema
Link copied to clipboard
open override val outputTypeCache: CacheMap<String, GraphQLOutputType>

Cache for GraphQLOutputTypes

Link copied to clipboard
private val reactiveNeo4jClient: ReactiveNeo4jClient
Link copied to clipboard
private val renderer: Renderer
Link copied to clipboard
open override val schema: GraphQLSchema

The new modified schema

Link copied to clipboard

Visitor used to transform the GraphQL schema Transforms the query type, and all Node types and interfaces

Link copied to clipboard

Gets all NodeDefinition which define a search query The name of the query is provided as value of the map

Link copied to clipboard
Link copied to clipboard

Gets all NodeDefinition which define a top level query The name of the query is provided as value of the map

Functions

Link copied to clipboard
private fun completeSchema(): GraphQLSchema

Adds the missing connection like queries for Node types declared using the DomainNode annotation

Link copied to clipboard
private fun getNodeInterfaces(nodeDefinition: NodeDefinition): Set<GraphQLTypeReference>

Gets a set of all valid Node supertypes for a NodeDefinition

Link copied to clipboard
private fun registerFieldDataFetcher(fieldDefinition: FieldDefinition, context: SchemaTransformationContext, nodeDefinition: NodeDefinition)

Registers a DataFetcher for a FieldDefinition

Link copied to clipboard
private fun updateInterfaceNodeType(type: GraphQLInterfaceType, nodeDefinition: NodeDefinition, context: SchemaTransformationContext): GraphQLInterfaceType

Updates an GraphQLInterfaceType, by adding all fields defined by NodeDefinition.relationshipDefinitions

Link copied to clipboard
private fun updateObjectNodeType(type: GraphQLObjectType, nodeDefinition: NodeDefinition, context: SchemaTransformationContext): GraphQLObjectType

Updates an GraphQLObjectType, by adding all fields defined by NodeDefinition.relationshipDefinitions

Link copied to clipboard
private fun updateQueryType(queryType: GraphQLObjectType, context: SchemaTransformationContext): GraphQLObjectType

Adds the missing connection like queries for Node types declared using the DomainNode annotation