public bool FindAndReplace(ExpressionTreeElement findElement, ExpressionTreeElement replaceElement) { if (Root.Equals(findElement) && replaceElement is ExpressionTreeNode) { Root = replaceElement as ExpressionTreeNode; return(true); } var expression = Root.Find(findElement.Parent) as BooleanOperatorNode; if (expression != null) { if (expression.Left != null && expression.Left.Equals(findElement)) { expression.Left = replaceElement; } else if (expression.Right != null && expression.Right.Equals(findElement)) { expression.Right = replaceElement; } else { return(false); } return(true); } return(false); }
public BooleanOperatorNode(ExpressionTreeNode parent, ExpressionTreeElement left, ExpressionTreeElement right, BooleanOperators boolOp) : base(parent, left, right) { Operator = boolOp; }
public BooleanOperatorNode(ExpressionTreeNode parent, BooleanOperators boolOp) : this(parent, null, null, boolOp) { }
public ExpressionTreeFieldLeaf(ExpressionTreeNode parent, FieldDescription property) : base(parent) { PropertyDescription = property; }
public ExpressionTreeFieldLeaf(ExpressionTreeNode parent) : base(parent) { }
public ExpressionTreeValueLeaf(ExpressionTreeNode parent, object fieldValue) : base(parent) { FieldValue = fieldValue; }
public ExpressionTreeValueLeaf(ExpressionTreeNode parent) : base(parent) { }
protected ExpressionTreeNode(ExpressionTreeNode parent, ExpressionTreeElement left, ExpressionTreeElement right) : base(parent) { Left = left; Right = right; }
/// <summary> /// Constructor with comparison expression node /// </summary> /// <param name="compOp">Comparison operator</param> public ExpressionTree(ComparisonOperators compOp) { Root = new ComparisonOperatorNode(null, compOp); }
/// <summary> /// Constructor with logical expression node /// </summary> /// <param name="boolOp">Logical operator</param> public ExpressionTree(BooleanOperators boolOp) { Root = new BooleanOperatorNode(null, boolOp); }
/// <summary> /// Default constructor /// </summary> public ExpressionTree() { Root = null; }
protected ExpressionTreeElement(ExpressionTreeNode parent) { Parent = parent; }
public ComparisonOperatorNode(ExpressionTreeNode parent, ExpressionTreeElement left, ExpressionTreeElement right, ComparisonOperators compOp) : base(parent, left, right) { Operator = compOp; }
public ComparisonOperatorNode(ExpressionTreeNode parent, ComparisonOperators compOp) : this(parent, null, null, compOp) { }