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);
  }