Beispiel #1
0
        void MergeConditionIntoTree(LogicalOperator desiredLogicalOperator, ConditionNode newCondition)
        {
            if (newCondition == null)
            {
                throw new ArgumentNullException("newCondition", "condition may not be null");
            }

            if (_topNode is LogicalNode && ((LogicalNode)_topNode).Operator == desiredLogicalOperator)
            {
                LogicalNode logicalNode = _topNode as LogicalNode;
                logicalNode.AddCondition(newCondition);
            }
            else
            {
                LogicalNode newTopNode = new LogicalNode(desiredLogicalOperator);
                newTopNode.AddCondition(_topNode);
                newTopNode.AddCondition(newCondition);
                _topNode = newTopNode;
            }
        }
Beispiel #2
0
        void MergeConditionIntoTree(LogicalOperator desiredLogicalOperator, ConditionNode newCondition)
        {
            if (newCondition == null)
            {
                throw new ArgumentNullException("newCondition", "condition may not be null");
            }

            if (_topNode is LogicalNode && ((LogicalNode)_topNode).Operator == desiredLogicalOperator)
            {
                // top node is already of the desired type, so just add into it
                LogicalNode logicalNode = _topNode as LogicalNode;
                logicalNode.AddCondition(newCondition);
            }
            else
            {
                // push existing top node down to be beneath this node...
                LogicalNode newTopNode = new LogicalNode(desiredLogicalOperator);
                newTopNode.AddCondition(_topNode);
                newTopNode.AddCondition(newCondition);
                _topNode = newTopNode;
            }
        }
        void MergeConditionIntoTree(LogicalOperator desiredLogicalOperator, ConditionNode newCondition)
        {
            if (newCondition == null)
                throw new ArgumentNullException("newCondition", "condition may not be null");

            if (_topNode is LogicalNode && ((LogicalNode)_topNode).Operator == desiredLogicalOperator)
            {
                // top node is already of the desired type, so just add into it
                LogicalNode logicalNode = _topNode as LogicalNode;
                logicalNode.AddCondition(newCondition);
            }
            else
            {
                // push existing top node down to be beneath this node...
                LogicalNode newTopNode = new LogicalNode(desiredLogicalOperator);
                newTopNode.AddCondition(_topNode);
                newTopNode.AddCondition(newCondition);
                _topNode = newTopNode;
            }
        }