@SuppressWarnings("ConstantConditions") private Optional<SchemaDefinition> getSchemaDef(Document document) { return document.getDefinitions().stream() .filter(d -> d instanceof SchemaDefinition) .map(SchemaDefinition.class::cast) .findFirst(); }
@Override public Document deepCopy() { return new Document(deepCopy(definitions), getSourceLocation(), getComments(), getIgnoredChars()); }
public Document createDocument(GraphqlParser.DocumentContext ctx) { Document.Builder document = Document.newDocument(); addCommonData(document, ctx); document.definitions(ctx.definition().stream().map(this::createDefinition) .collect(toList())); return document.build(); }
private Builder(Document existing) { this.sourceLocation = existing.getSourceLocation(); this.comments = existing.getComments(); this.definitions = existing.getDefinitions(); this.ignoredChars = existing.getIgnoredChars(); }
@Override public TraversalControl visitDocument(Document node, TraverserContext<Node> context) { Document changedNode = node.transform(builder -> { List<Definition> definitions = sort(node.getDefinitions(), comparingDefinitions()); builder.definitions(definitions); }); return changeNode(context, changedNode); }
public List<GraphQLRequestQuery> parseQuery(final String body){ Parser parser = new Parser(); Document document; try { document = parser.parseDocument(body); document.getChildren(); for(Definition definition : document.getDefinitions()){ if(definition instanceof OperationDefinition){ OperationDefinition operationDefinition = (OperationDefinition) definition; OperationDefinition.Operation operation = operationDefinition.getOperation(); if(operation == OperationDefinition.Operation.QUERY){ return getQuery(operationDefinition); } } } } catch (ParseCancellationException e) { System.out.println(e); } return null; }
@Override public Document withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .definitions(newChildren.getChildren(CHILD_DEFINITIONS)) ); }
public Document build() { Document document = new Document(definitions, sourceLocation, comments, ignoredChars); return document; } }
private Builder(Document existing) { this.sourceLocation = existing.getSourceLocation(); this.comments = existing.getComments(); this.definitions = existing.getDefinitions(); this.ignoredChars = existing.getIgnoredChars(); }
@Override public TraversalControl visitDocument(Document node, TraverserContext<Node> context) { List<Definition> wantedDefinitions = node.getDefinitions().stream() .filter(d -> { if (d instanceof OperationDefinition) { OperationDefinition operationDefinition = (OperationDefinition) d; return isThisOperation(operationDefinition, operationName); } return d instanceof FragmentDefinition; // SDL in a query makes no sense - its gone should it be present }) .collect(Collectors.toList()); Document changedNode = node.transform(builder -> { builder.definitions(wantedDefinitions); }); return changeNode(context, changedNode); } };
@Override public Document withNewChildren(NodeChildrenContainer newChildren) { return transform(builder -> builder .definitions(newChildren.getChildren(CHILD_DEFINITIONS)) ); }
public Document build() { Document document = new Document(definitions, sourceLocation, comments, ignoredChars); return document; } }
public static Map<String, FragmentDefinition> getFragmentsByName(Document document) { Map<String, FragmentDefinition> fragmentsByName = new LinkedHashMap<>(); for (Definition definition : document.getDefinitions()) { if (definition instanceof FragmentDefinition) { FragmentDefinition fragmentDefinition = (FragmentDefinition) definition; fragmentsByName.put(fragmentDefinition.getName(), fragmentDefinition); } } return fragmentsByName; }
@Override public TraversalControl visitDocument(Document node, TraverserContext<Node> context) { Document changedNode = node.transform(builder -> { List<Definition> definitions = sort(node.getDefinitions(), comparingDefinitions()); builder.definitions(definitions); }); return changeNode(context, changedNode); }
@Override public Document deepCopy() { return new Document(deepCopy(definitions), getSourceLocation(), getComments(), getIgnoredChars()); }
Document.Builder document = Document.newDocument(); if (nonDefaultQueryName || nonDefaultMutationName || nonDefaultSubscriptionName) { document.definition(schemaDefinition.build());
private void buildFragmentMap() { for (Definition definition : document.getDefinitions()) { if (!(definition instanceof FragmentDefinition)) continue; FragmentDefinition fragmentDefinition = (FragmentDefinition) definition; fragmentDefinitionMap.put(fragmentDefinition.getName(), fragmentDefinition); } }
@Override public TraversalControl visitDocument(Document node, TraverserContext<Node> context) { List<Definition> wantedDefinitions = node.getDefinitions().stream() .filter(d -> { if (d instanceof OperationDefinition) { OperationDefinition operationDefinition = (OperationDefinition) d; return isThisOperation(operationDefinition, operationName); } return d instanceof FragmentDefinition; // SDL in a query makes no sense - its gone should it be present }) .collect(Collectors.toList()); Document changedNode = node.transform(builder -> { builder.definitions(wantedDefinitions); }); return changeNode(context, changedNode); } };
public Document createDocument(GraphqlParser.DocumentContext ctx) { Document.Builder document = Document.newDocument(); addCommonData(document, ctx); document.definitions(ctx.definition().stream().map(this::createDefinition) .collect(toList())); return document.build(); }
private NodePrinter<Document> document() { if (compactMode) { return (out, node) -> out.printf("%s", join(node.getDefinitions(), " ")); } return (out, node) -> out.printf("%s\n", join(node.getDefinitions(), "\n\n")); }