/// <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);
        }
示例#3
0
        /// <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));
 }
示例#5
0
 /// <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");
 }
示例#6
0
 /// <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)));
 }