/// <summary> /// Procesa la generación de documentación de un programa /// </summary> internal DocumentFileModelCollection Process(ProgramModel objProgram) { NameSpaceGroupModelCollection objColGroups = new Prepare.NameSpaceGroupGenerator().Generate(objProgram); DocumentFileModelCollection objColDocuments = new DocumentFileModelCollection(); // Carga las plantillas Templates = new Repository.Templates.TemplateRepository().Load(DocumentationProcessor.Parameters.TemplateFileName); // Crea los documentos foreach (NameSpaceGroupModel objGroup in objColGroups) { if (Templates.MustGenerateFile(objGroup, DocumentationProcessor.Parameters)) { DocumentFileModel objDocument = new DocumentFileModel(null, objGroup.NameSpace, 0); // Procesa la estructura del lenguaje if (objGroup.NameSpace != null) { Generate(objGroup.NameSpace, objDocument); } else { objDocument.Name = objGroup.Name; } // Añade el documento a la colección objColDocuments.Add(objDocument); } } // Graba los documentos ProcessDocuments(objColDocuments); // Devuelve los documentos return(objColDocuments); }
/// <summary> /// Genera los archivos de índice /// </summary> private DocumentFileModelCollection GenerateFilesIndex(DocumentFileModelCollection documents) { DocumentFileModelCollection filesIndex = new DocumentFileModelCollection(); // Recorre las plantillas generando los archivos de índice foreach (TemplateModel template in Templates) { if (template.Type == TemplateModel.TemplateType.Index) { try { DocumentFileModel fullDocument = documents.Compact(template.Name); // Procesa el documento new Generators.TemplateDocumentGenerator(Project, this, template, fullDocument, UrlBaseDocuments, documents).Process(); // ... y lo añade a la colección de índices filesIndex.Add(fullDocument); } catch (Exception exception) { AddError($"Error al generar el documento de índice de la plantilla {template.RelativeFileName}. {exception.Message}"); } } } // Devuelve la colección de índices return(filesIndex); }
/// <summary> /// Genera los archivos de índice /// </summary> private DocumentFileModelCollection GenerateFilesIndex(DocumentFileModelCollection objColDocuments) { DocumentFileModelCollection objColFilesIndex = new DocumentFileModelCollection(); // Recorre las plantillas generando los archivos de índice foreach (TemplateModel objTemplate in Templates) { if (objTemplate.IDType == TemplateModel.TemplateType.Index) { try { DocumentFileModel objFullDocument = objColDocuments.Compact(objTemplate.Name); Generators.TemplateDocumentGenerator objGenerator = new Generators.TemplateDocumentGenerator(Project, this, objTemplate, objFullDocument, UrlBaseDocuments, objColDocuments); // Procesa el documento objGenerator.Process(); // ... y lo añade a la colección de índices objColFilesIndex.Add(objFullDocument); } catch (Exception objException) { AddError($"Error al generar el documento de índice de la plantilla {objTemplate.RelativeFileName}. {objException.Message}"); } } } // Devuelve la colección de índices return(objColFilesIndex); }
/// <summary> /// Procesa la generación de documentos /// </summary> internal void Process(StructDocumentationModelCollection structDocs) { DocumentFileModelCollection documents = new DocumentFileModelCollection(); // Carga las plantillas Templates = new Repository.Templates.TemplateRepository().Load(Project.TemplatePath); // Crea los documentos foreach (StructDocumentationModel structDoc in structDocs) { if (Templates.MustGenerateFile(structDoc, Project.GenerationParameters)) { DocumentFileModel document = new DocumentFileModel(null, structDoc, 0); // Procesa la estructura del lenguaje Generate(structDoc, document); // Añade el documento a la colección documents.Add(document); } } // Graba los documentos ProcessDocuments(documents); }