protected override void VisitSchemaDefinition( SchemaDefinitionNode node, object context) { foreach (OperationTypeDefinitionNode operationType in node.OperationTypes) { switch (operationType.Operation) { case OperationType.Query: QueryTypeName = operationType.Type.Name.Value; break; case OperationType.Mutation: MutationTypeName = operationType.Type.Name.Value; break; case OperationType.Subscription: SubscriptionTypeName = operationType.Type.Name.Value; break; default: throw new InvalidOperationException("Unknown operation type."); } } }
protected override void VisitSchemaDefinition( SchemaDefinitionNode node, object context) { Description = node.Description?.Value; Directives = node.Directives; foreach (OperationTypeDefinitionNode operationType in node.OperationTypes) { switch (operationType.Operation) { case OperationType.Query: QueryTypeName = operationType.Type.Name.Value; break; case OperationType.Mutation: MutationTypeName = operationType.Type.Name.Value; break; case OperationType.Subscription: SubscriptionTypeName = operationType.Type.Name.Value; break; default: throw new InvalidOperationException( TypeResources.SchemaSyntaxVisitor_UnknownOperationType); } } }
public SchemaInfo(string name, DocumentNode document) { if (string.IsNullOrEmpty(name)) { throw new ArgumentException( StitchingResources.SchemaName_EmptyOrNull, nameof(name)); } if (document == null) { throw new ArgumentNullException(nameof(document)); } Name = name; Document = document; Dictionary <string, ITypeDefinitionNode> types = document.Definitions .OfType <ITypeDefinitionNode>() .ToDictionary(t => t.Name.Value); Types = types; Directives = document.Definitions .OfType <DirectiveDefinitionNode>() .ToDictionary(t => t.Name.Value); SchemaDefinitionNode schemaDefinition = document.Definitions .OfType <SchemaDefinitionNode>().FirstOrDefault(); RootTypes = GetRootTypeMapppings( GetRootTypeNameMapppings(schemaDefinition), types); }
protected override void VisitSchemaDefinition( SchemaDefinitionNode node, TypeDefinitionItem context) { VisitMany( node.Directives, context, VisitDirective); VisitMany( node.OperationTypes, context, VisitOperationTypeDefinition); }
protected sealed override ISyntaxVisitorAction Enter( ISyntaxNode node, ISyntaxVisitorContext context) { return(node switch { DocumentNode n => Enter(n, context), OperationDefinitionNode n => Enter(n, context), VariableDefinitionNode n => Enter(n, context), VariableNode n => Enter(n, context), SelectionSetNode n => Enter(n, context), FieldNode n => Enter(n, context), ArgumentNode n => Enter(n, context), FragmentSpreadNode n => Enter(n, context), InlineFragmentNode n => Enter(n, context), FragmentDefinitionNode n => Enter(n, context), DirectiveNode n => Enter(n, context), NamedTypeNode n => Enter(n, context), ListTypeNode n => Enter(n, context), NonNullTypeNode n => Enter(n, context), ListValueNode n => Enter(n, context), ObjectValueNode n => Enter(n, context), ObjectFieldNode n => Enter(n, context), IValueNode n => Enter(n, context), SchemaDefinitionNode n => Enter(n, context), OperationTypeDefinitionNode n => Enter(n, context), ScalarTypeDefinitionNode n => Enter(n, context), ObjectTypeDefinitionNode n => Enter(n, context), FieldDefinitionNode n => Enter(n, context), InputValueDefinitionNode n => Enter(n, context), InterfaceTypeDefinitionNode n => Enter(n, context), UnionTypeDefinitionNode n => Enter(n, context), EnumTypeDefinitionNode n => Enter(n, context), EnumValueDefinitionNode n => Enter(n, context), InputObjectTypeDefinitionNode n => Enter(n, context), DirectiveDefinitionNode n => Enter(n, context), SchemaExtensionNode n => Enter(n, context), ScalarTypeExtensionNode n => Enter(n, context), ObjectTypeExtensionNode n => Enter(n, context), InterfaceTypeExtensionNode n => Enter(n, context), UnionTypeExtensionNode n => Enter(n, context), EnumTypeExtensionNode n => Enter(n, context), InputObjectTypeExtensionNode n => Enter(n, context), _ => throw new NotSupportedException() });
protected virtual ISyntaxVisitorAction Enter( SchemaDefinitionNode node, ISyntaxVisitorContext context) => DefaultAction;
protected virtual ISyntaxVisitorAction Leave( SchemaDefinitionNode node, TContext context) => DefaultAction;
private void VisitSchemaDefinition(SchemaDefinitionNode node, ISyntaxWriter writer) { WriteDescription(node.Description, writer); VisitSchemaDefinitionBase(node, writer); }
protected virtual void VisitSchemaDefinition(SchemaDefinitionNode node) { }