Esempio n. 1
0
        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;
 }
Esempio n. 9
0
 /// <summary>
 /// Constructor with comparison expression node
 /// </summary>
 /// <param name="compOp">Comparison operator</param>
 public ExpressionTree(ComparisonOperators compOp)
 {
     Root = new ComparisonOperatorNode(null, compOp);
 }
Esempio n. 10
0
 /// <summary>
 /// Constructor with logical expression node
 /// </summary>
 /// <param name="boolOp">Logical operator</param>
 public ExpressionTree(BooleanOperators boolOp)
 {
     Root = new BooleanOperatorNode(null, boolOp);
 }
Esempio n. 11
0
 /// <summary>
 /// Default constructor
 /// </summary>
 public ExpressionTree()
 {
     Root = null;
 }
Esempio n. 12
0
 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)
 {
 }