Пример #1
0
        /// <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);
        }
Пример #3
0
 /// <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);
                }
            }
        }
Пример #5
0
        /// <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);
                }
            }
        }
Пример #6
0
        /// <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);
                        }
                    }
                }
            }
        }
Пример #9
0
        /// <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);
                        }
                    }
                }
            }
        }