Пример #1
0
        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.");
                }
            }
        }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        protected override void VisitSchemaDefinition(
            SchemaDefinitionNode node,
            TypeDefinitionItem context)
        {
            VisitMany(
                node.Directives,
                context,
                VisitDirective);

            VisitMany(
                node.OperationTypes,
                context,
                VisitOperationTypeDefinition);
        }
Пример #5
0
 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()
     });
Пример #6
0
 protected virtual ISyntaxVisitorAction Enter(
     SchemaDefinitionNode node,
     ISyntaxVisitorContext context) =>
 DefaultAction;
 protected virtual ISyntaxVisitorAction Leave(
     SchemaDefinitionNode node,
     TContext context) =>
 DefaultAction;
Пример #8
0
 private void VisitSchemaDefinition(SchemaDefinitionNode node, ISyntaxWriter writer)
 {
     WriteDescription(node.Description, writer);
     VisitSchemaDefinitionBase(node, writer);
 }
Пример #9
0
 protected virtual void VisitSchemaDefinition(SchemaDefinitionNode node)
 {
 }