/// <summary> /// Remove the Filter /// </summary> /// <param name="Filter">The Filter to remove.</param> public bool RemoveFilter(FilterBase filter) { // check the parameters Debug.AssertNotNull(filter, "Filters is null"); if(filters.Contains(filter)) { filters.Remove(filter); treeValidated = false; return true; } return false; }
/// <summary> /// Add the Filter /// </summary> /// <param name="Filter">The Filter to add.</param> /// <remarks>Trows an exception if the Filter is already in added.</remarks> public void AddFilter(FilterBase filter) { // check the parameters Debug.AssertNotNull(filter, "Filters is null"); Debug.Assert(filters.Contains(filter) == false, "Filters already in the category"); filters.Add(filter); treeValidated = false; }
public static ExpressionTree AssociateTreeWithFilter(ExpressionTree tree, FilterBase filter, FilterImplication implication, TreeDirection treeDirection) { // check the parameters Debug.Assert(tree != null && filter != null, "Null parameters"); ExpressionTree result = new ExpressionTree(); if(treeDirection == TreeDirection.Left) { result.AddRoot(ExpressionType.Implication, implication); result.Root.Left = tree.Root; result.AddNode(result.Root, TreeDirection.Right, ExpressionType.Filter, filter); } else { result.AddRoot(ExpressionType.Implication, implication); result.Root.Right = tree.Root; result.AddNode(result.Root, TreeDirection.Left, ExpressionType.Filter, filter); } return result; }
public FilterNode(FilterBase filter) : this() { this.Filter = filter; }
public static ExpressionTree AssociateFilters(FilterBase a, FilterBase b, FilterImplication implication) { // check the parameters Debug.Assert(a != null && b != null, "Null parameters"); ExpressionTree result = new ExpressionTree(); result.AddRoot(ExpressionType.Implication, implication); result.AddNode(result.Root, TreeDirection.Left, ExpressionType.Filter, a); result.AddNode(result.Root, TreeDirection.Right, ExpressionType.Filter, b); return result; }