internal override SearchQuery Optimize(ISearchQueryOptimizer optimizer) { SearchQuery binary = null; SearchQuery right = null; SearchQuery left = null; if (optimizer.CanReduce(Left)) { left = optimizer.Reduce(Left); } if (optimizer.CanReduce(Right)) { right = optimizer.Reduce(Right); } if (left != null || right != null) { binary = new BinarySearchQuery(Term, left ?? Left, right ?? Right); } else { binary = this; } if (optimizer.CanReduce(binary)) { return(optimizer.Reduce(binary)); } return(binary); }
internal override SearchQuery Optimize (ISearchQueryOptimizer optimizer) { SearchQuery unary = null; if (optimizer.CanReduce (Operand)) unary = new UnarySearchQuery (Term, optimizer.Reduce (Operand)); else unary = this; if (optimizer.CanReduce (unary)) return optimizer.Reduce (unary); return unary; }
internal virtual SearchQuery Optimize(ISearchQueryOptimizer optimizer) { if (optimizer.CanReduce(this)) { return(optimizer.Reduce(this)); } return(this); }
internal override SearchQuery Optimize(ISearchQueryOptimizer optimizer) { SearchQuery unary = null; if (optimizer.CanReduce(Operand)) { unary = new UnarySearchQuery(Term, optimizer.Reduce(Operand)); } else { unary = this; } if (optimizer.CanReduce(unary)) { return(optimizer.Reduce(unary)); } return(unary); }
internal override SearchQuery Optimize(ISearchQueryOptimizer optimizer) { SearchQuery binary = null; SearchQuery right = null; SearchQuery left = null; if (optimizer.CanReduce (Left)) left = optimizer.Reduce (Left); if (optimizer.CanReduce (Right)) right = optimizer.Reduce (Right); if (left != null || right != null) binary = new BinarySearchQuery (Term, left ?? Left, right ?? Right); else binary = this; if (optimizer.CanReduce (binary)) return optimizer.Reduce (binary); return binary; }
internal virtual SearchQuery Optimize (ISearchQueryOptimizer optimizer) { return optimizer.CanReduce (this) ? optimizer.Reduce (this) : this; }
internal virtual SearchQuery Optimize(ISearchQueryOptimizer optimizer) { if (optimizer.CanReduce (this)) return optimizer.Reduce (this); return this; }