public static FilterScope <T> AddScope <T>( this IFilterVisitorContext <T> context) { FilterScope <T>?closure = context.CreateScope(); context.Scopes.Push(closure); return(closure); }
public static IError CreateNonNullError <T>( IFilterField field, IValueNode value, IFilterVisitorContext <T> context) { IFilterInputType filterType = context.Types.OfType <IFilterInputType>().First(); return(ErrorBuilder.New() .SetMessage( DataResources.ErrorHelper_CreateNonNullError, context.Operations.Peek().Name, filterType.Visualize()) .AddLocation(value) .SetExtension("expectedType", new NonNullType(field.Type).Visualize()) .SetExtension("filterType", filterType.Visualize()) .Build()); }
public static IError CreateNonNullError <T>( IFilterField field, IValueNode value, IFilterVisitorContext <T> context) { IFilterInputType filterType = context.Types.OfType <IFilterInputType>().First(); return(ErrorBuilder.New() .SetMessage( "The provided value for filter `{0}` of type {1} is invalid. " + "Null values are not supported.", context.Operations.Peek().Name, filterType.Visualize()) .AddLocation(value) .SetExtension("expectedType", new NonNullType(field.Type).Visualize()) .SetExtension("filterType", filterType.Visualize()) .Build()); }
public static void ReportError <T> (this IFilterVisitorContext <T> context, IError error) => context.Errors.Add(error);
public static FilterScope <T> PopScope <T>( this IFilterVisitorContext <T> context) => context.Scopes.Pop();
public static Queue <T> PopLevel <T>(this IFilterVisitorContext <T> context) => context.Scopes.Peek().Level.Pop();
public static T PopInstance <T>(this IFilterVisitorContext <T> context) => context.Scopes.Peek().Instance.Pop();
public static void PushLevel <T>( this IFilterVisitorContext <T> context, Queue <T> nextLevel) => context.Scopes.Peek().Level.Push(nextLevel);
public static void PushInstance <T>( this IFilterVisitorContext <T> context, T nextExpression) => context.Scopes.Peek().Instance.Push(nextExpression);
public static FilterScope <T> GetScope <T>( this IFilterVisitorContext <T> context) => context.Scopes.Peek();