/// <summary> /// Convierte un espacio de nombres en una estructura /// </summary> private StructDocumentationModel Convert(NameSpaceGroupModel group) { StructDocumentationModel structDoc = Create(null, group.NameSpace, "NameSpace"); // Añade los datos structDoc.Childs.AddRange(Convert(structDoc, group.NameSpace.Items)); // Devuelve la estructura return(structDoc); }
/// <summary> /// Convierte un espacio de nombres en una estructura /// </summary> private StructDocumentationModel Convert(NameSpaceGroupModel objGroup) { StructDocumentationModel objStruct = Create(null, objGroup.NameSpace, "NameSpace"); // Añade los datos objStruct.Childs.AddRange(Convert(objStruct, objGroup.NameSpace.Items)); // Devuelve la estructura return(objStruct); }
/// <summary> /// Comprueba si se debe generar un archivo para un espacio de nombres (es decir, si alguna de las estructuras /// de ese espacio de nombres necesita un archivo de documentación) /// </summary> internal bool MustGenerateFile(NameSpaceGroupModel objGroup) { // Comprueba si se debe generar documentación para alguno de los elementos del espacio de nombres foreach (LanguageStructModel objStruct in objGroup.NameSpace.Items) { if (MustGenerateFile(objStruct)) { return(true); } } // Si se ha llegado hasta aquí es porque no se debería generar return(false); }
/// <summary> /// Añade las estructuras que no tienen un espacio de nombres /// </summary> private void AddStructsNoNameSpace(NameSpaceGroupModelCollection groups, CompilationUnitModel compilationUnit) { LanguageStructModelCollection structsDoc = compilationUnit.SearchNoNameSpaces(); if (structsDoc != null && structsDoc.Count > 0) { NameSpaceGroupModel group = GetGroupNoNameSpace(groups); // Añade las estructuras foreach (LanguageStructModel structDoc in structsDoc) { group.NameSpace.Items.Add(structDoc); } } }
/// <summary> /// Añade las estructuras que no tienen un espacio de nombres /// </summary> private void AddStructsNoNameSpace(NameSpaceGroupModelCollection objColGroups, CompilationUnitModel objCompilationUnit) { LanguageStructModelCollection objColStructs = objCompilationUnit.SearchNoNameSpaces(); if (objColStructs != null && objColStructs.Count > 0) { NameSpaceGroupModel objGroup = GetGroupNoNameSpace(objColGroups); // Añade las estructuras foreach (LanguageStructModel objStruct in objColStructs) { objGroup.NameSpace.Items.Add(objStruct); } } }
/// <summary> /// Obtiene el grupo de espacios de nombres para las clases sin espacio de nombres /// </summary> private NameSpaceGroupModel GetGroupNoNameSpace(NameSpaceGroupModelCollection objColGroups) { NameSpaceGroupModel objGroup = objColGroups.Search(cnstStrNoNameSpace); // Si no se ha encontrado el espacio de nombres se añade if (objGroup == null) { // Crea el espacio de nombres objGroup = new NameSpaceGroupModel(null, cnstStrNoNameSpace); // Añade el espacio de nombres a la colección objColGroups.Add(objGroup); // Crea el símbolo del espacio de nombres objGroup.NameSpace = new NameSpaceModel(null); objGroup.NameSpace.Name = cnstStrNoNameSpace; } // Devuelve el grupo return(objGroup); }
/// <summary> /// Obtiene el grupo de espacios de nombres para las clases sin espacio de nombres /// </summary> private NameSpaceGroupModel GetGroupNoNameSpace(NameSpaceGroupModelCollection groups) { NameSpaceGroupModel group = groups.Search(NoNameSpace); // Si no se ha encontrado el espacio de nombres se añade if (group == null) { // Crea el espacio de nombres group = new NameSpaceGroupModel(null, NoNameSpace); // Añade el espacio de nombres a la colección groups.Add(group); // Crea el símbolo del espacio de nombres group.NameSpace = new NameSpaceModel(null); group.NameSpace.Name = NoNameSpace; } // Devuelve el grupo return(group); }
/// <summary> /// Añade las estructuras a los grupos /// </summary> private void AddStructsToGroups(NameSpaceGroupModelCollection groups, ProgramModel program) { foreach (CompilationUnitModel compilationUnit in program.CompilationUnits) { foreach (LanguageStructModel structDoc in compilationUnit.Root.Items) { if (structDoc is NameSpaceModel) { NameSpaceModel nameSpace = structDoc as NameSpaceModel; NameSpaceGroupModel group = groups.Search(nameSpace.Name); if (group != null) { foreach (LanguageStructModel child in nameSpace.Items) { // Si no se ha añadido antes este espacio de nombres, se crea if (group.NameSpace == null) { group.NameSpace = nameSpace; } // Añade el elemento hijo AddStructToNameSpace(group.NameSpace, child); } } } else { NameSpaceGroupModel group = GetGroupNoNameSpace(groups); if (group != null) { AddStructToNameSpace(group.NameSpace, structDoc); } } } } }
/// <summary> /// Añade las estructuras a los grupos /// </summary> private void AddStructsToGroups(NameSpaceGroupModelCollection objColGroups, ProgramModel objProgram) { foreach (CompilationUnitModel objCompilationUnit in objProgram.CompilationUnits) { foreach (LanguageStructModel objStruct in objCompilationUnit.Root.Items) { if (objStruct is NameSpaceModel) { NameSpaceModel objNameSpace = objStruct as NameSpaceModel; NameSpaceGroupModel objGroup = objColGroups.Search(objNameSpace.Name); if (objGroup != null) { foreach (LanguageStructModel objChild in objNameSpace.Items) { // Si no se ha añadido antes este espacio de nombres, se crea if (objGroup.NameSpace == null) { objGroup.NameSpace = objNameSpace; } // Añade el elemento hijo AddStructToNameSpace(objGroup.NameSpace, objChild); } } } else { NameSpaceGroupModel objGroup = GetGroupNoNameSpace(objColGroups); if (objGroup != null) { AddStructToNameSpace(objGroup.NameSpace, objStruct); } } } } }