public static void AcceptProjection(QNode node, IQNodeVisitor visitor) { node.Left.Accept(visitor); visitor.EnterContext(node); visitor.VisitProjection(node); visitor.LeaveContext(node); }
public static void AcceptMethod(QNode node, IQNodeVisitor visitor) { node.Left.Accept(visitor); visitor.EnterContext(node); node.Right.Accept(visitor); visitor.VisitMethod(node); visitor.LeaveContext(node); }
private static void AcceptBinary(QNode node, IQNodeVisitor visitor) { node.Left.Accept(visitor); if (node.Right.Type == NodeType.Constant) { visitor.SetConstantConverter(node); } node.Right.Accept(visitor); visitor.VisitBinary(node); }
public static void Accept(this QNode node, IQNodeVisitor visitor) { if (node.Type == NodeType.Binary) { AcceptBinary(node, visitor); } if (node.Type == NodeType.Member) { AcceptMember(node, visitor); } if (node.Type == NodeType.Querable) { AcceptQuerable(node, visitor); } if (node.Type == NodeType.Method) { MethodType method; if (node.Value is long) { method = (MethodType)Convert.ToInt16(node.Value); } else { Enum.TryParse(Convert.ToString(node.Value), out method); } if (method == MethodType.Select) { AcceptProjection(node, visitor); } else { AcceptMethod(node, visitor); } } if (node.Type == NodeType.Constant) { AcceptConstant(node, visitor); } }
public static void Accept(this QNode node, IQNodeVisitor visitor) { var group = EnumResolver.ResolveNodeGroup(node.Type); if (group == NodeGroup.Binary) { AcceptBinary(node, visitor); } if (group == NodeGroup.Member) { AcceptMember(node, visitor); } if (group == NodeGroup.Querable) { AcceptQuerable(node, visitor); } if (group == NodeGroup.Method) { var method = EnumResolver.ResolveNodeType(node.Type); if (method == NodeType.Select) { AcceptProjection(node, visitor); } else if (node.Argument == null) { AcceptEmptyMethod(node, visitor); } else { AcceptMethod(node, visitor); } } if (group == NodeGroup.Constant) { AcceptConstant(node, visitor); } }
public static void Accept(this QNode node, IQNodeVisitor visitor) { if (node.Type == NodeType.Binary) { AcceptBinary(node, visitor); } if (node.Type == NodeType.Member) { AcceptMember(node, visitor); } if (node.Type == NodeType.Querable) { AcceptQuerable(node, visitor); } if (node.Type == NodeType.Method) { var method = EnumResolver.ResolveMethod(node.Value); if (method == MethodType.Select) { AcceptProjection(node, visitor); } else if (node.Right == null) { AcceptEmptyMethod(node, visitor); } else { AcceptMethod(node, visitor); } } if (node.Type == NodeType.Constant) { AcceptConstant(node, visitor); } }
private static void AcceptConstant(QNode node, IQNodeVisitor visitor) { visitor.VisitConstant(node); }
public static void AcceptProjection(QNode node, IQNodeVisitor visitor) { node.Operand.Accept(visitor); visitor.VisitProjection(node); }
public static void AcceptEmptyMethod(QNode node, IQNodeVisitor visitor) { node.Operand.Accept(visitor); visitor.VisitEmptyMethod(node); }
public static void AcceptMethod(QNode node, IQNodeVisitor visitor) { node.Operand.Accept(visitor); node.Argument.Accept(visitor); visitor.VisitMethod(node); }
private static void AcceptQuerable(QNode node, IQNodeVisitor visitor) { }
private static void AcceptMember(QNode node, IQNodeVisitor visitor) { visitor.VisitMember(node); }
private static void AcceptBinary(QNode node, IQNodeVisitor visitor) { node.Operand.Accept(visitor); node.Argument.Accept(visitor); visitor.VisitBinary(node); }
private static void AcceptMember(QNode node, IQNodeVisitor visitor) { //node.Left.Accept(visitor); visitor.VisitMember(node); }
private static void AcceptBinary(QNode node, IQNodeVisitor visitor) { node.Left.Accept(visitor); node.Right.Accept(visitor); visitor.VisitBinary(node); }