private MethodCall CreateMethodCall(FunctionSignatureCache signatureCache)
            {
                var createInfo = new ElementCreateInfo(Host, null, null, null, null);
                var methodCall = MocCommonMethodCall.Create(createInfo);

                methodCall.Target = AssociatedEnvoy.MakeRelativeDependencyName();
                if (signatureCache != null)
                {
                    methodCall.Bounds = new NationalInstruments.Core.SMRect(methodCall.Left, methodCall.Top, signatureCache.Width, signatureCache.Height);
                }
                CreateTerminals(methodCall, signatureCache);
                return(methodCall);
            }
            private void CreateTerminals(MethodCall methodCall, FunctionSignatureCache signatureCache)
            {
                var cachedParameters = signatureCache?.CachedParameters;

                if (cachedParameters != null)
                {
                    foreach (var cachedParameter in cachedParameters)
                    {
                        var direction = PFTypes.ParameterCallDirectionToDirection(cachedParameter.CallDirection);
                        var terminal  = new NodeTerminal(
                            direction,
                            cachedParameter.DataType,
                            cachedParameter.SideIndex.ToString(),
                            cachedParameter.Hotspot);
                        methodCall.AddTerminal(terminal);
                    }
                }
            }
 private void AddIconToBuilder(MergeScriptBuilder builder, MethodCall methodCall, FunctionSignatureCache signatureCache)
 {
     if (signatureCache?.IconModel != null)
     {
         var generationOptions = new ElementGenerationOptions(GenerationReason.Merge);
         var table             = IconTable.GetIconTableToGenerate(methodCall, generationOptions);
         if (table != null)
         {
             table.AddIcon(methodCall.Target, signatureCache.IconModel);
             builder.AddElement(new MergeElementInfo(table));
         }
     }
 }