public override FilterNode <TValue>?Visit(NegateFilter <TValue> nodeIn, None args) { var pruned = nodeIn.Filter.Accept(this, None.Value); if (pruned == null) { return(null); } if (pruned is CompareFilter <TValue> comparison) { if (comparison.Operator == CompareOperator.Equals) { return(comparison with { Operator = CompareOperator.NotEquals }); } if (comparison.Operator == CompareOperator.NotEquals) { return(comparison with { Operator = CompareOperator.Equals }); } } if (ReferenceEquals(pruned, nodeIn.Filter)) { return(nodeIn); } return(new NegateFilter <TValue>(pruned)); }
public override async ValueTask <FilterNode <TValue>?> Visit(NegateFilter <TValue> nodeIn) { var inner = await nodeIn.Filter.Accept(this); if (inner == null) { return(inner); } return(new NegateFilter <TValue>(inner)); }
public override FilterNode <TValue>?Visit(NegateFilter <TValue> nodeIn) { var inner = nodeIn.Filter.Accept(this); if (inner == null) { return(inner); } return(new NegateFilter <TValue>(inner)); }
public override FilterNode <TValue>?Visit(NegateFilter <TValue> nodeIn) { var pruned = nodeIn.Filter.Accept(this); if (pruned == null) { return(null); } if (pruned is CompareFilter <TValue> comparison) { if (comparison.Operator == CompareOperator.Equals) { return(new CompareFilter <TValue>(comparison.Path, CompareOperator.NotEquals, comparison.Value)); } if (comparison.Operator == CompareOperator.NotEquals) { return(new CompareFilter <TValue>(comparison.Path, CompareOperator.Equals, comparison.Value)); } } return(new NegateFilter <TValue>(pruned)); }
public override FilterNode <TValue> Visit(NegateFilter <TValue> nodeIn) { return(new NegateFilter <TValue>(nodeIn.Filter.Accept(this))); }
public virtual T Visit(NegateFilter <TValue> nodeIn, TArgs args) { throw new NotImplementedException(); }