Package graphql.language
Class AstPrinter
- java.lang.Object
-
- graphql.language.AstPrinter
-
- Direct Known Subclasses:
PrettyAstPrinter
@PublicApi public class AstPrinter extends java.lang.Object
This can take graphql language AST and print it out as a string
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interface
AstPrinter.NodePrinter<T extends Node>
These print nodes into output writers
-
Field Summary
Fields Modifier and Type Field Description private boolean
compactMode
private java.util.Map<java.lang.Class<? extends Node>,AstPrinter.NodePrinter<? extends Node>>
printers
-
Constructor Summary
Constructors Constructor Description AstPrinter(boolean compactMode)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) <T extends Node>
AstPrinter.NodePrinter<T>_findPrinter(Node node)
(package private) <T extends Node>
AstPrinter.NodePrinter<T>_findPrinter(Node node, java.lang.Class startClass)
private AstPrinter.NodePrinter<Argument>
argument()
private <T extends Node>
java.lang.Stringblock(java.util.List<T> nodes)
private java.lang.String
description(Node<?> node)
private AstPrinter.NodePrinter<Directive>
directive()
private AstPrinter.NodePrinter<DirectiveDefinition>
directiveDefinition()
private AstPrinter.NodePrinter<DirectiveLocation>
directiveLocation()
private java.lang.String
directives(java.util.List<Directive> directives)
private AstPrinter.NodePrinter<Document>
document()
private AstPrinter.NodePrinter<EnumTypeDefinition>
enumTypeDefinition()
private AstPrinter.NodePrinter<EnumTypeExtensionDefinition>
enumTypeExtensionDefinition()
private AstPrinter.NodePrinter<EnumValue>
enumValue()
private AstPrinter.NodePrinter<EnumValueDefinition>
enumValueDefinition()
private AstPrinter.NodePrinter<Field>
field()
private AstPrinter.NodePrinter<FieldDefinition>
fieldDefinition()
private AstPrinter.NodePrinter<FragmentDefinition>
fragmentDefinition()
private AstPrinter.NodePrinter<FragmentSpread>
fragmentSpread()
private boolean
hasDescription(java.util.List<? extends Node> nodes)
private java.lang.StringBuilder
indent(java.lang.StringBuilder maybeString)
private AstPrinter.NodePrinter<InlineFragment>
inlineFragment()
private AstPrinter.NodePrinter<InputObjectTypeDefinition>
inputObjectTypeDefinition()
private AstPrinter.NodePrinter<InputObjectTypeExtensionDefinition>
inputObjectTypeExtensionDefinition()
private AstPrinter.NodePrinter<InputValueDefinition>
inputValueDefinition()
private AstPrinter.NodePrinter<InterfaceTypeDefinition>
interfaceTypeDefinition()
private AstPrinter.NodePrinter<InterfaceTypeDefinition>
interfaceTypeExtensionDefinition()
private boolean
isEmpty(java.lang.String s)
private <T> boolean
isEmpty(java.util.List<T> list)
private java.lang.String
join(java.lang.String delim, java.lang.String... args)
private <T extends Node>
java.lang.Stringjoin(java.util.List<T> nodes, java.lang.String delim)
private <T extends Node>
java.lang.Stringjoin(java.util.List<T> nodes, java.lang.String delim, java.lang.String prefix, java.lang.String suffix)
private <T extends Node>
java.lang.StringjoinTight(java.util.List<T> nodes, java.lang.String delim, java.lang.String prefix, java.lang.String suffix)
private java.lang.String
node(Node node)
private java.lang.String
node(Node node, java.lang.Class startClass)
private <T> java.util.List<T>
nvl(java.util.List<T> list)
private AstPrinter.NodePrinter<ObjectField>
objectField()
private AstPrinter.NodePrinter<ObjectTypeDefinition>
objectTypeDefinition()
private AstPrinter.NodePrinter<ObjectTypeExtensionDefinition>
objectTypeExtensionDefinition()
private AstPrinter.NodePrinter<OperationDefinition>
operationDefinition()
private AstPrinter.NodePrinter<OperationTypeDefinition>
operationTypeDefinition()
static java.lang.String
printAst(Node node)
This will pretty print the AST node in graphql language formatstatic void
printAst(java.io.Writer writer, Node node)
This will pretty print the AST node in graphql language formatstatic java.lang.String
printAstCompact(Node node)
This will print the Ast node in graphql language format in a compact manner, with no new lines and descriptions stripped out of the text.private static void
printImpl(java.lang.StringBuilder writer, Node node, boolean compactMode)
(package private) void
replacePrinter(java.lang.Class<? extends Node> nodeClass, AstPrinter.NodePrinter<? extends Node> nodePrinter)
Allow subclasses to replace a printer for a specificNode
private AstPrinter.NodePrinter<ScalarTypeDefinition>
scalarTypeDefinition()
private AstPrinter.NodePrinter<ScalarTypeExtensionDefinition>
scalarTypeExtensionDefinition()
private AstPrinter.NodePrinter<SchemaDefinition>
schemaDefinition()
private AstPrinter.NodePrinter<SchemaExtensionDefinition>
schemaExtensionDefinition()
private AstPrinter.NodePrinter<SelectionSet>
selectionSet()
private java.lang.String
smooshed(java.lang.String... args)
private java.lang.String
spaced(java.lang.String... args)
private AstPrinter.NodePrinter<Type>
type()
private java.lang.String
type(Type type)
private AstPrinter.NodePrinter<UnionTypeDefinition>
unionTypeDefinition()
private AstPrinter.NodePrinter<UnionTypeExtensionDefinition>
unionTypeExtensionDefinition()
private AstPrinter.NodePrinter<Value>
value()
private java.lang.String
value(Value value)
private AstPrinter.NodePrinter<VariableDefinition>
variableDefinition()
private AstPrinter.NodePrinter<VariableReference>
variableReference()
(package private) java.lang.String
wrap(java.lang.String start, Node maybeNode, java.lang.String end)
(package private) java.lang.String
wrap(java.lang.String start, java.lang.String maybeString, java.lang.String end)
-
-
-
Field Detail
-
printers
private final java.util.Map<java.lang.Class<? extends Node>,AstPrinter.NodePrinter<? extends Node>> printers
-
compactMode
private final boolean compactMode
-
-
Method Detail
-
argument
private AstPrinter.NodePrinter<Argument> argument()
-
document
private AstPrinter.NodePrinter<Document> document()
-
directive
private AstPrinter.NodePrinter<Directive> directive()
-
directiveDefinition
private AstPrinter.NodePrinter<DirectiveDefinition> directiveDefinition()
-
directiveLocation
private AstPrinter.NodePrinter<DirectiveLocation> directiveLocation()
-
enumTypeDefinition
private AstPrinter.NodePrinter<EnumTypeDefinition> enumTypeDefinition()
-
enumValue
private AstPrinter.NodePrinter<EnumValue> enumValue()
-
enumValueDefinition
private AstPrinter.NodePrinter<EnumValueDefinition> enumValueDefinition()
-
field
private AstPrinter.NodePrinter<Field> field()
-
fieldDefinition
private AstPrinter.NodePrinter<FieldDefinition> fieldDefinition()
-
hasDescription
private boolean hasDescription(java.util.List<? extends Node> nodes)
-
fragmentDefinition
private AstPrinter.NodePrinter<FragmentDefinition> fragmentDefinition()
-
fragmentSpread
private AstPrinter.NodePrinter<FragmentSpread> fragmentSpread()
-
inlineFragment
private AstPrinter.NodePrinter<InlineFragment> inlineFragment()
-
inputObjectTypeDefinition
private AstPrinter.NodePrinter<InputObjectTypeDefinition> inputObjectTypeDefinition()
-
inputValueDefinition
private AstPrinter.NodePrinter<InputValueDefinition> inputValueDefinition()
-
interfaceTypeDefinition
private AstPrinter.NodePrinter<InterfaceTypeDefinition> interfaceTypeDefinition()
-
objectField
private AstPrinter.NodePrinter<ObjectField> objectField()
-
operationDefinition
private AstPrinter.NodePrinter<OperationDefinition> operationDefinition()
-
operationTypeDefinition
private AstPrinter.NodePrinter<OperationTypeDefinition> operationTypeDefinition()
-
objectTypeDefinition
private AstPrinter.NodePrinter<ObjectTypeDefinition> objectTypeDefinition()
-
selectionSet
private AstPrinter.NodePrinter<SelectionSet> selectionSet()
-
scalarTypeDefinition
private AstPrinter.NodePrinter<ScalarTypeDefinition> scalarTypeDefinition()
-
schemaDefinition
private AstPrinter.NodePrinter<SchemaDefinition> schemaDefinition()
-
type
private AstPrinter.NodePrinter<Type> type()
-
type
private java.lang.String type(Type type)
-
objectTypeExtensionDefinition
private AstPrinter.NodePrinter<ObjectTypeExtensionDefinition> objectTypeExtensionDefinition()
-
enumTypeExtensionDefinition
private AstPrinter.NodePrinter<EnumTypeExtensionDefinition> enumTypeExtensionDefinition()
-
interfaceTypeExtensionDefinition
private AstPrinter.NodePrinter<InterfaceTypeDefinition> interfaceTypeExtensionDefinition()
-
unionTypeExtensionDefinition
private AstPrinter.NodePrinter<UnionTypeExtensionDefinition> unionTypeExtensionDefinition()
-
scalarTypeExtensionDefinition
private AstPrinter.NodePrinter<ScalarTypeExtensionDefinition> scalarTypeExtensionDefinition()
-
inputObjectTypeExtensionDefinition
private AstPrinter.NodePrinter<InputObjectTypeExtensionDefinition> inputObjectTypeExtensionDefinition()
-
schemaExtensionDefinition
private AstPrinter.NodePrinter<SchemaExtensionDefinition> schemaExtensionDefinition()
-
unionTypeDefinition
private AstPrinter.NodePrinter<UnionTypeDefinition> unionTypeDefinition()
-
variableDefinition
private AstPrinter.NodePrinter<VariableDefinition> variableDefinition()
-
variableReference
private AstPrinter.NodePrinter<VariableReference> variableReference()
-
node
private java.lang.String node(Node node)
-
node
private java.lang.String node(Node node, java.lang.Class startClass)
-
_findPrinter
<T extends Node> AstPrinter.NodePrinter<T> _findPrinter(Node node)
-
_findPrinter
<T extends Node> AstPrinter.NodePrinter<T> _findPrinter(Node node, java.lang.Class startClass)
-
isEmpty
private <T> boolean isEmpty(java.util.List<T> list)
-
isEmpty
private boolean isEmpty(java.lang.String s)
-
nvl
private <T> java.util.List<T> nvl(java.util.List<T> list)
-
value
private AstPrinter.NodePrinter<Value> value()
-
value
private java.lang.String value(Value value)
-
description
private java.lang.String description(Node<?> node)
-
directives
private java.lang.String directives(java.util.List<Directive> directives)
-
join
private <T extends Node> java.lang.String join(java.util.List<T> nodes, java.lang.String delim)
-
joinTight
private <T extends Node> java.lang.String joinTight(java.util.List<T> nodes, java.lang.String delim, java.lang.String prefix, java.lang.String suffix)
-
join
private <T extends Node> java.lang.String join(java.util.List<T> nodes, java.lang.String delim, java.lang.String prefix, java.lang.String suffix)
-
spaced
private java.lang.String spaced(java.lang.String... args)
-
smooshed
private java.lang.String smooshed(java.lang.String... args)
-
join
private java.lang.String join(java.lang.String delim, java.lang.String... args)
-
wrap
java.lang.String wrap(java.lang.String start, java.lang.String maybeString, java.lang.String end)
-
block
private <T extends Node> java.lang.String block(java.util.List<T> nodes)
-
indent
private java.lang.StringBuilder indent(java.lang.StringBuilder maybeString)
-
wrap
java.lang.String wrap(java.lang.String start, Node maybeNode, java.lang.String end)
-
printAst
public static java.lang.String printAst(Node node)
This will pretty print the AST node in graphql language format- Parameters:
node
- the AST node to print- Returns:
- the printed node in graphql language format
-
printAst
public static void printAst(java.io.Writer writer, Node node)
This will pretty print the AST node in graphql language format- Parameters:
writer
- the place to put the outputnode
- the AST node to print
-
printAstCompact
public static java.lang.String printAstCompact(Node node)
This will print the Ast node in graphql language format in a compact manner, with no new lines and descriptions stripped out of the text.- Parameters:
node
- the AST node to print- Returns:
- the printed node in a compact graphql language format
-
printImpl
private static void printImpl(java.lang.StringBuilder writer, Node node, boolean compactMode)
-
replacePrinter
void replacePrinter(java.lang.Class<? extends Node> nodeClass, AstPrinter.NodePrinter<? extends Node> nodePrinter)
Allow subclasses to replace a printer for a specificNode
- Parameters:
nodeClass
- the class of theNode
nodePrinter
- the customAstPrinter.NodePrinter
-
-