DataDictionary.Interpreter.BinaryExpression.CreateGraphResult C# (CSharp) Method

CreateGraphResult() private method

Creates the result as a surface
private CreateGraphResult ( DataDictionary.Interpreter.InterpretationContext context, DataDictionary.Functions.Function leftFunction, List unboundLeft, DataDictionary.Functions.Function rightFunction, List unboundRight, ExplanationPart explain ) : ICallable
context DataDictionary.Interpreter.InterpretationContext
leftFunction DataDictionary.Functions.Function
unboundLeft List
rightFunction DataDictionary.Functions.Function
unboundRight List
explain ExplanationPart
return ICallable
        private ICallable CreateGraphResult(InterpretationContext context, Function leftFunction,
            List<Parameter> unboundLeft, Function rightFunction, List<Parameter> unboundRight, ExplanationPart explain)
        {
            ICallable retVal = null;

            Graph leftGraph = createGraphForUnbound(context, Left, leftFunction, unboundLeft, explain);
            if (leftGraph != null)
            {
                Graph rightGraph = createGraphForUnbound(context, Right, rightFunction, unboundRight, explain);

                if (rightGraph != null)
                {
                    Graph combinedGraph = CombineGraph(leftGraph, rightGraph) as Graph;
                    if (combinedGraph != null)
                    {
                        retVal = combinedGraph.Function;
                    }
                }
                else
                {
                    AddError("Cannot create graph for " + Right, RuleChecksEnum.ExecutionFailed);
                }
            }
            else
            {
                AddError("Cannot create graph for " + Left, RuleChecksEnum.ExecutionFailed);
            }

            return retVal;
        }