private void RenderActiveTemplateSection()
        {
            ScriptableCodeTemplate current = activeTemplate;

            UnityEngine.Object selectedObject = EditorGUILayout.ObjectField("Active Template:", activeTemplate, typeof(ScriptableCodeTemplate), false);

            ScriptableCodeTemplate selected = selectedObject as ScriptableCodeTemplate;

            if (selected != current)
            {
                ApplyTemplate(selected);
            }
        }
        public void ApplyTemplate(ScriptableCodeTemplate template)
        {
            if (activeTemplate == template)
            {
                return;
            }

            activeTemplate = template;
            parameterValues.Clear();

            replacedString     = string.Empty;
            allParametersValid = false;

            codeParamList = new List <CodeGenerationParameter>();

            if (template == null)
            {
                return;
            }

            codeParamList = ReflectionUtilities.GetFieldByName
                            <IEnumerable <CodeGenerationParameter> >(activeTemplate,
                                                                     "parameters", BindingFlags.Instance | BindingFlags.NonPublic);
        }