internal static QNode MapQValue(QNode qNode, Func <IQueryValue, IQueryValue> mapFunc) { if (qNode is QGroupNode) { var group = new QGroupNode((QGroupNode)qNode); for (int i = 0; i < group.Nodes.Count; i++) { group.Nodes[i] = MapQValue(group.Nodes[i], mapFunc); } return(group); } if (qNode is QConditionNode) { var origCndNode = (QConditionNode)qNode; var cndNode = new QConditionNode(origCndNode.Name, mapFunc(origCndNode.LValue), origCndNode.Condition, mapFunc(origCndNode.RValue)); return(cndNode); } if (qNode is QNegationNode) { var negNode = new QNegationNode((QNegationNode)qNode); for (int i = 0; i < negNode.Nodes.Count; i++) { negNode.Nodes[i] = MapQValue(negNode.Nodes[i], mapFunc); } return(negNode); } return(qNode); }
protected virtual string BuildNegation(QNegationNode node) { if (node.Nodes.Count == 0) { return(null); } string expression = BuildExpression(node.Nodes[0]); if (expression == null) { return(null); } return(String.Format("NOT({0})", expression)); }
public QNegationNode(QNegationNode copyNode) { SingleNodeList = new QNode[] { copyNode.Nodes[0] }; Name = copyNode.Name; }