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; } }
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; } }