コード例 #1
0
    protected override void EnterInlineFragment(PrinterContext context, InlineFragment inlineFragment)
    {
        context.Append("... ");

        if (inlineFragment.TypeCondition != null)
        {
            context.Append("on ");
        }
    }
コード例 #2
0
        private void Serialize(InlineFragment fragment, StringBuilder builder)
        {
            builder.Append("... on ");
            builder.Append(fragment.TypeCondition.Name);

            if (fragment.Selections.Any() == true)
            {
                SerializeSelections(fragment, builder);
            }
        }
コード例 #3
0
    private void VisitInlineFragment(InlineFragment node)
    {
        EnterNode(node);

        if (node.TypeCondition != null)
        {
            Visit(node.TypeCondition);
        }

        Visit(node.Directives);

        Visit(node.SelectionSet);

        ExitNode(node);
    }
コード例 #4
0
        private string PrintInlineFragment(InlineFragment node)
        {
            var typeCondition = node.TypeCondition != null?PrintNamedType(node.TypeCondition): string.Empty;

            var directives   = node.Directives?.Select(PrintDirective) ?? Array.Empty <string>();
            var selectionSet = PrintSelectionSet(node.SelectionSet);

            return(Join(new[]
            {
                "...",
                Wrap("on ", typeCondition),
                Join(directives, " "),
                selectionSet
            },
                        " "));
        }
コード例 #5
0
ファイル: RulesWalker.cs プロジェクト: digvand/tanka-graphql
        public override InlineFragment BeginVisitInlineFragment(
            InlineFragment inlineFragment)
        {
            {
                Tracker.EnterInlineFragment?.Invoke(inlineFragment);
            }

            var _ = base.BeginVisitInlineFragment(inlineFragment);


            {
                Tracker.LeaveInlineFragment?.Invoke(inlineFragment);
            }

            return(_);
        }
コード例 #6
0
ファイル: Visitor.cs プロジェクト: digvand/tanka-graphql
 public virtual InlineFragment BeginVisitInlineFragment(
     InlineFragment inlineFragment)
 {
     if (inlineFragment.TypeCondition != null)
     {
         BeginVisitNode(inlineFragment.TypeCondition);
     }
     if (inlineFragment.Directives != null)
     {
         BeginVisitDirectives(inlineFragment.Directives);
     }
     if (inlineFragment.SelectionSet != null)
     {
         BeginVisitSelectionSet(inlineFragment.SelectionSet);
     }
     return(inlineFragment);
 }
コード例 #7
0
    public void Visit(InlineFragment selection)
    {
        // enter
        foreach (var visitor in _options.InlineFragment)
        {
            visitor.Enter(selection);
        }

        // children
        Visit(selection.TypeCondition);
        Visit(selection.Directives);
        Visit(selection.SelectionSet);

        // leave
        foreach (var visitor in _options.InlineFragment)
        {
            visitor.Leave(selection);
        }
    }
コード例 #8
0
 /// <summary>
 /// Initializes a new instance with the specified properties.
 /// </summary>
 public FragmentsOnCompositeTypesError(ValidationContext context, InlineFragment node)
     : base(context.OriginalQuery, NUMBER, InlineFragmentOnNonCompositeErrorMessage(context.Print(node.Type)), node.Type)
 {
 }
コード例 #9
0
ファイル: VisitAllBase.cs プロジェクト: pekkah/tanka-graphql
 public virtual void Leave(InlineFragment selection)
 {
 }
コード例 #10
0
ファイル: VisitAllBase.cs プロジェクト: pekkah/tanka-graphql
 public virtual void Enter(InlineFragment selection)
 {
 }
コード例 #11
0
 /// <summary>
 /// Initializes a new instance with the specified properties.
 /// </summary>
 public PossibleFragmentSpreadsError(ValidationContext context, InlineFragment node, IGraphType parentType, IGraphType fragType)
     : base(context.OriginalQuery, NUMBER, TypeIncompatibleAnonSpreadMessage(context.Print(parentType), context.Print(fragType)), node)
 {
 }
コード例 #12
0
 /// <summary>
 /// Initializes a new instance with the specified properties.
 /// </summary>
 public PossibleFragmentSpreadsError(ValidationContext context, InlineFragment node, IGraphType parentType, IGraphType fragType)
     : base(context.Document.OriginalQuery !, NUMBER, TypeIncompatibleAnonSpreadMessage(parentType.ToString(), fragType.ToString()), node)
コード例 #13
0
 /// <summary>
 /// Initializes a new instance with the specified properties.
 /// </summary>
 public FragmentsOnCompositeTypesError(ValidationContext context, InlineFragment node)
     : base(context.Document.OriginalQuery !, NUMBER, InlineFragmentOnNonCompositeErrorMessage(node.Type !.StringFrom(context.Document)), node.Type !)
コード例 #14
0
        public ExecutionDocumentWalkerOptions Add(object visitor)
        {
            if (visitor is IVisit <ExecutableDocument> ed)
            {
                ExecutableDocument.Add(ed);
            }

            if (visitor is IVisit <FragmentDefinition> fd)
            {
                FragmentDefinition.Add(fd);
            }

            if (visitor is IVisit <OperationDefinition> od)
            {
                OperationDefinition.Add(od);
            }

            if (visitor is IVisit <SelectionSet> ss)
            {
                SelectionSet.Add(ss);
            }


            if (visitor is IVisit <ISelection> s)
            {
                Selection.Add(s);
            }

            if (visitor is IVisit <FieldSelection> fs)
            {
                FieldSelection.Add(fs);
            }

            if (visitor is IVisit <InlineFragment> ift)
            {
                InlineFragment.Add(ift);
            }

            if (visitor is IVisit <FragmentSpread> fgs)
            {
                FragmentSpread.Add(fgs);
            }

            if (visitor is IVisit <Argument> arg)
            {
                Argument.Add(arg);
            }

            if (visitor is IVisit <NamedType> nt)
            {
                NamedType.Add(nt);
            }

            if (visitor is IVisit <VariableDefinition> vd)
            {
                VariableDefinition.Add(vd);
            }

            if (visitor is IVisit <DefaultValue> dv)
            {
                DefaultValue.Add(dv);
            }

            if (visitor is IVisit <Value> v)
            {
                Value.Add(v);
            }

            if (visitor is IVisit <Directive> d)
            {
                Directive.Add(d);
            }

            if (visitor is IVisit <TypeBase> t)
            {
                Type.Add(t);
            }

            return(this);
        }
コード例 #15
0
 protected virtual void ExitInlineFragment(TContext context, InlineFragment inlineFragment)
 {
 }