/// <summary> /// Resolves types for the specified expression. /// </summary> /// <param name="expression">The expression to resolve types for.</param> /// <returns>Expression with resolved types.</returns> public QueryExpression Visit(QueryNotExpression expression) { var argument = this.ResolveTypes(expression.Argument); var boolType = this.EvaluationStrategy.BooleanType; return(argument.Not(boolType)); }
/// <summary> /// Replaces the given expression. /// </summary> /// <param name="expression">Expression to replace.</param> /// <returns>Replaced expression.</returns> public virtual QueryExpression Visit(QueryNotExpression expression) { QueryExpression argument = this.ReplaceExpression(expression.Argument); if (this.HasChanged(expression.Argument, argument)) { return(new QueryNotExpression(argument, expression.ExpressionType)); } return(expression); }
/// <summary> /// Evaluates the specified expression. /// </summary> /// <param name="expression">The expression to evaluate.</param> /// <returns>Value of the expression.</returns> public QueryValue Visit(QueryNotExpression expression) { var argumentValue = this.Evaluate(expression.Argument) as QueryScalarValue; if (argumentValue == null) { throw new TaupoInvalidOperationException("Argument must be a " + typeof(QueryScalarValue).Name + "."); } return(argumentValue.LogicalNegate()); }
/// <summary> /// Visits a QueryExpression tree whose root node is the QueryNotExpression. /// </summary> /// <param name="expression">The root node of the expression tree being visited.</param> /// <returns>Uri query string representing the expression.</returns> public override string Visit(QueryNotExpression expression) { return string.Format(CultureInfo.InvariantCulture, "not ({0})", this.Convert(expression.Argument)); }
/// <summary> /// Visits a QueryExpression tree whose root node is the QueryNotExpression. /// </summary> /// <param name="expression">The root node of the expression tree being visited.</param> /// <returns>Uri query string representing the expression.</returns> public virtual string Visit(QueryNotExpression expression) { throw new TaupoNotSupportedException("Not supported"); }
/// <summary> /// Generates System.CodeDom.CodeExpression from the given expression. /// </summary> /// <param name="expression">Expression from which System.CodeDom.CodeExpression is generated.</param> /// <returns>Generated System.CodeDom.CodeExpression.</returns> public virtual CodeExpression Visit(QueryNotExpression expression) { return(this.GenerateCode(expression.Argument).ValueEquals(Code.Primitive(false))); }
/// <summary> /// Visits a QueryExpression tree whose root node is the QueryNotExpression. /// </summary> /// <param name="expression">The root node of the expression tree being visited.</param> /// <returns>Uri query string representing the expression.</returns> public override string Visit(QueryNotExpression expression) { return(string.Format(CultureInfo.InvariantCulture, "not ({0})", this.Convert(expression.Argument))); }