Beispiel #1
0
 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);
 }
Beispiel #2
0
        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));
        }
Beispiel #3
0
 public QNegationNode(QNegationNode copyNode)
 {
     SingleNodeList = new QNode[] { copyNode.Nodes[0] };
     Name           = copyNode.Name;
 }