Class SchemaTransformer

java.lang.Object
graphql.schema.SchemaTransformer

@PublicApi public class SchemaTransformer extends Object
Transforms a GraphQLSchema object by calling bac on a provided visitor.

To change a GraphQLSchemaElement node in the schema you need to return GraphQLTypeVisitor.changeNode(TraverserContext, GraphQLSchemaElement) which instructs the schema transformer to change that element upon leaving that visitor method.


 public TraversalControl visitGraphQLObjectType(GraphQLObjectType objectType, TraverserContext<GraphQLSchemaElement> context) {
     GraphQLObjectType newObjectType = mkSomeNewNode(objectType);
     return changeNode(context, newObjectType);
 }
 

To delete an element use GraphQLTypeVisitor.deleteNode(TraverserContext)


 public TraversalControl visitGraphQLObjectType(GraphQLObjectType objectType, TraverserContext<GraphQLSchemaElement> context) {
     return deleteNode(context, objectType);
 }
 

To insert elements use either GraphQLTypeVisitor.insertAfter(TraverserContext, GraphQLSchemaElement) or GraphQLTypeVisitor.insertBefore(TraverserContext, GraphQLSchemaElement) which will insert the new node before or after the current node being visited


 public TraversalControl visitGraphQLObjectType(GraphQLObjectType objectType, TraverserContext<GraphQLSchemaElement> context) {
     GraphQLObjectType newObjectType = mkSomeNewNode();
     return insertAfter(context, newObjectType);
 }