public override Expression Accept([NotNull] ExpressionTreeVisitor visitor)
        {
            Check.NotNull(visitor, nameof(visitor));

            var specificVisitor = visitor as ISqlExpressionVisitor;

            return(specificVisitor != null
                ? specificVisitor.VisitIsNullExpression(this)
                : base.Accept(visitor));
        }
Example #2
0
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newMatchExpression   = visitor.VisitExpression(_match);
            var newPatternExpression = visitor.VisitExpression(_pattern);

            return(newMatchExpression != _match ||
                   newPatternExpression != _pattern
                ? new LikeExpression(newMatchExpression, newPatternExpression)
                : this);
        }
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newPattern = visitor.VisitExpression(pattern);

            if (Equals(pattern, newPattern))
            {
                return(this);
            }

            return(new AllowSpecialCharactersExpression(newPattern));
        }
Example #4
0
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var result = visitor.VisitExpression(_expression);

            if (result != _expression)
            {
                return(new TestExtensionExpression(result));
            }

            return(this);
        }
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newExpression = visitor.VisitExpression(_expression);

            if (newExpression != _expression)
            {
                return(new SqlConvertedBooleanExpression(newExpression));
            }

            return(this);
        }
Example #6
0
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newExpression = visitor.VisitExpression(BinaryExpression);

            if (ReferenceEquals(BinaryExpression, newExpression))
            {
                return(this);
            }

            return(new BoostBinaryExpression((BinaryExpression)newExpression, Boost));
        }
Example #7
0
        public override Expression Accept([NotNull] ExpressionTreeVisitor visitor)
        {
            Check.NotNull(visitor, "visitor");

            var specificVisitor = visitor as TableQueryGenerator;

            if (specificVisitor != null)
            {
                return(specificVisitor.VisitSelectExpression(this));
            }
            return(base.Accept(visitor));
        }
        public override void VisitWhereClause(Remotion.Linq.Clauses.WhereClause whereClause, QueryModel queryModel, int index)
        {
            bool alreadyHasQuery = false;

            var query = new StringBuilder();
            queries.Add(query);

            ExpressionTreeVisitor visitor = new ExpressionTreeVisitor(query);
            visitor.VisitExpression(whereClause.Predicate);

            base.VisitWhereClause(whereClause, queryModel, index);
        }
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newLeftExpression   = visitor.VisitExpression(_left);
            var newRightExpression  = visitor.VisitExpression(_right);
            var newEscapeExpression = visitor.VisitExpression(_escapeExpression);

            if (newLeftExpression != _left || newRightExpression != _right || newEscapeExpression != _escapeExpression)
            {
                return(new SqlLikeExpression(newLeftExpression, newRightExpression, newEscapeExpression));
            }
            return(this);
        }
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newExpressions = visitor.VisitAndConvert(_expressions, "VisitChildren");

            if (newExpressions != Expressions)
            {
                return(new SqlCompositeCustomTextGeneratorExpression(Type, newExpressions.ToArray()));
            }
            else
            {
                return(this);
            }
        }
        public override Expression Accept(ExpressionTreeVisitor visitor)
        {
            var specificVisitor = visitor as IPartialEvaluationExceptionExpressionVisitor;

            if (specificVisitor != null)
            {
                return(specificVisitor.VisitPartialEvaluationExceptionExpression(this));
            }
            else
            {
                return(base.Accept(visitor));
            }
        }
        public override Expression Accept(ExpressionTreeVisitor visitor)
        {
            var specificVisitor = visitor as ISqlSpecificExpressionVisitor;

            if (specificVisitor != null)
            {
                return(specificVisitor.VisitSqlFunctionExpression(this));
            }
            else
            {
                return(base.Accept(visitor));
            }
        }
        public override Expression Accept(ExpressionTreeVisitor visitor)
        {
            ArgumentUtility.CheckNotNull("visitor", visitor);

            var collectionExpressionVisitor = visitor as ISqlCollectionExpressionVisitor;

            if (collectionExpressionVisitor != null)
            {
                return(collectionExpressionVisitor.VisitSqlCollectionExpression(this));
            }

            return(base.Accept(visitor));
        }
        public override Expression Accept(ExpressionTreeVisitor visitor)
        {
            var specificVisitor = visitor as IVBSpecificExpressionVisitor;

            if (specificVisitor != null)
            {
                return(specificVisitor.VisitVBStringComparisonExpression(this));
            }
            else
            {
                return(base.Accept(visitor));
            }
        }
Example #15
0
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newPrimaryKeyExpression = visitor.VisitExpression(_identityExpression);

            if (newPrimaryKeyExpression != _identityExpression)
            {
                return(new SqlEntityConstantExpression(Type, _value, newPrimaryKeyExpression));
            }
            else
            {
                return(this);
            }
        }
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newSource = visitor.VisitExpression(_source);

            if (newSource != _source)
            {
                return(new SqlConvertExpression(Type, newSource));
            }
            else
            {
                return(this);
            }
        }
Example #17
0
        public override Expression Accept(ExpressionTreeVisitor visitor)
        {
            var specificVisitor = visitor as ISpecificVisitor;

            if (specificVisitor != null)
            {
                return(specificVisitor.VisitTestableExtensionExpression(this));
            }
            else
            {
                return(base.Accept(visitor));
            }
        }
        public override Expression Accept(ExpressionTreeVisitor visitor)
        {
            var specificVisitor = visitor as ISqlCustomTextGeneratorExpressionVisitor;

            if (specificVisitor != null)
            {
                return(specificVisitor.VisitSqlCustomTextGeneratorExpression(this));
            }
            else
            {
                return(base.Accept(visitor));
            }
        }
        protected internal override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newExpression = visitor.VisitExpression(_comparison);

            if (newExpression != _comparison)
            {
                return(new VBStringComparisonExpression(newExpression, _textCompare));
            }
            else
            {
                return(this);
            }
        }
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newExpression = visitor.VisitExpression(_expression);

            if (newExpression != _expression)
            {
                return(new SqlExistsExpression(newExpression));
            }
            else
            {
                return(this);
            }
        }
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            ArgumentUtility.CheckNotNull("visitor", visitor);

            var newItems = visitor.VisitAndConvert(_items, "SqlCollectionExpression.VisitChildren");

            if (newItems != _items)
            {
                return(new SqlCollectionExpression(Type, newItems));
            }

            return(this);
        }
Example #22
0
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newColumns = visitor.VisitAndConvert(Columns, "VisitChildren");

            if (newColumns != Columns)
            {
                return(new SqlEntityDefinitionExpression(Type, TableAlias, null, IdentityExpressionGenerator, newColumns.ToArray()));
            }
            else
            {
                return(this);
            }
        }
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newArgs = visitor.VisitAndConvert(_args, "SqlFunctionExpression.VisitChildren");

            if (_args != newArgs)
            {
                return(new SqlFunctionExpression(Type, _sqlFunctioName, newArgs.ToArray()));
            }
            else
            {
                return(this);
            }
        }
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newChild = visitor.VisitExpression(Child);

            if (newChild != Child)
            {
                return(new CustomCompositeExpression(Type, newChild));
            }
            else
            {
                return(this);
            }
        }
        protected internal override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newEvaluatedExpression = visitor.VisitExpression(_evaluatedExpression);

            if (newEvaluatedExpression != _evaluatedExpression)
            {
                return(new PartialEvaluationExceptionExpression(_exception, newEvaluatedExpression));
            }
            else
            {
                return(this);
            }
        }
Example #26
0
        public override Expression Accept(ExpressionTreeVisitor visitor)
        {
            var specificVisitor = visitor as IResolvedSqlExpressionVisitor;

            if (specificVisitor != null)
            {
                return(specificVisitor.VisitSqlEntityExpression(this));
            }
            else
            {
                return(base.Accept(visitor));
            }
        }
Example #27
0
        public override Expression Accept(ExpressionTreeVisitor visitor)
        {
            var specificVisitor = visitor as ISqlNullCheckExpressionVisitor;

            if (specificVisitor != null)
            {
                return(specificVisitor.VisitSqlIsNotNullExpression(this));
            }
            else
            {
                return(base.Accept(visitor));
            }
        }
        public Expression Transform(NewExpression expression)
        {
            if (expression.Members == null && CanAddMembers(expression.Type, expression.Arguments))
            {
                var members = GetMembers(expression.Constructor, expression.Arguments);
                return(Expression.New(
                           expression.Constructor,
                           ExpressionTreeVisitor.AdjustArgumentsForNewExpression(expression.Arguments, members),
                           members));
            }

            return(expression);
        }
Example #29
0
        public override Expression Accept([NotNull] ExpressionTreeVisitor visitor)
        {
            Check.NotNull(visitor, "visitor");

            var specificVisitor = visitor as ISqlExpressionVisitor;

            if (specificVisitor != null)
            {
                return(specificVisitor.VisitOuterJoinExpression(this));
            }

            return(base.Accept(visitor));
        }
        protected override Expression VisitChildren(ExpressionTreeVisitor visitor)
        {
            var newLeftExpression  = visitor.VisitExpression(_leftExpression);
            var newRightExpression = visitor.VisitExpression(_rightExpression);

            if (newLeftExpression != _leftExpression || newRightExpression != _rightExpression)
            {
                return(new SqlInExpression(newLeftExpression, newRightExpression));
            }
            else
            {
                return(this);
            }
        }
Example #31
0
        public override Expression Accept(ExpressionTreeVisitor visitor)
        {
            ArgumentUtility.CheckNotNull("visitor", visitor);

            var specificVisitor = visitor as ISqlTableReferenceExpressionVisitor;

            if (specificVisitor != null)
            {
                return(specificVisitor.VisitSqlTableReferenceExpression(this));
            }
            else
            {
                return(base.Accept(visitor));
            }
        }
 /// <summary>
 /// Checks if the expression can be coppied or moved, without changing the semantics of the program. Additional checks must be made to find the scope of the supposed move.
 /// </summary>
 /// <param name="expression">The expression in question.</param>
 /// <returns>Returns true, if the expression can be safely moved/coppied.</returns>
 private bool CanBePropagated(Expression expression)
 {
     ExpressionTreeVisitor etv = new ExpressionTreeVisitor();
     return etv.CanBePropagated(expression);
 }