Ejemplo n.º 1
0
        /// <summary>
        /// génère la chaine qui contient le code de création du ClassWriter.
        /// </summary>
        private string GenerateCodeWriter(TemplateItem ti)
        {
            string      mainCode = string.Empty;
            eParserType typ      = eParserType.None;

#if DEBUG
            typ = eParserType.File;
#else
            typ = eParserType.Memory;
#endif

            ITemplateParser Parser  = new ParserFactory().GetParser(eParserType.File);
            bool            bResult = Parser.GenerateCode(ti.TemplateFile);

            if (bResult)                //le parsing est ok
            {
                string classCode = new ResourceHelper().ReadResource("ReflectionStudio.Core",
                                                                     "ReflectionStudio.Core.Generator.ClassWriter.ClassWriterExtended.txt");

                //on remplace ClassWriter<#=DOM=#> pour avoir une classe du type "ClassWriter + BO + Base"
                classCode = classCode.Replace("<#DOM#>", ti.OutputFilePrefix + ti.OutputFileSufix);

                //on remplace avec le code pour la fonction generate()
                classCode = classCode.Replace("<#CODE#>", Parser.GetCode());

#if DEBUG
                StreamWriter sw = File.CreateText(AppDomain.CurrentDomain.BaseDirectory + "\\ClassWriterResult.txt");
                sw.Write(classCode);
                sw.Close();
#endif
                return(classCode);
            }
            else
            {
                return(null);
            }
        }