MySql.Data.Entity.SelectGenerator.HandleJoinExpression C# (CSharp) Method

HandleJoinExpression() private method

private HandleJoinExpression ( System.Data.Common.CommandTrees.DbExpressionBinding left, System.Data.Common.CommandTrees.DbExpressionBinding right, DbExpressionKind joinType, DbExpression joinCondition ) : SqlFragment
left System.Data.Common.CommandTrees.DbExpressionBinding
right System.Data.Common.CommandTrees.DbExpressionBinding
joinType DbExpressionKind
joinCondition DbExpression
return SqlFragment
        private SqlFragment HandleJoinExpression(DbExpressionBinding left, DbExpressionBinding right, 
            DbExpressionKind joinType, DbExpression joinCondition)
        {
            JoinFragment join = new JoinFragment();
            join.JoinType = Metadata.GetOperator(joinType);

            join.Left = VisitInputExpression(left.Expression, left.VariableName, left.VariableType);
            WrapJoinInputIfNecessary(join.Left, false);
            join.Right = VisitInputExpression(right.Expression, right.VariableName, right.VariableType);
            WrapJoinInputIfNecessary(join.Right, true);

            // now handle the ON case
            if (joinCondition != null)
                join.Condition = joinCondition.Accept(this);
            return join;
        }